$('#home').live('pageshow', function(event) {
$.mobile.showPageLoadingMsg();
var task = getUrlVars()["que"];
var page = getUrlVars()["page"];
var query = '';
if(page == undefined){
page = 0;
}
var nextPage = page+1;
if(task == undefined){
task = 'home';
}
switch(task){
case 'home':
query = 'task=home&page='+page;
break;
}
$.get('http://myappserver.com/api.php?'+query,function(data,response){
alert(response);
alert(data);
var json = eval(data);
var list = '';
for (var i=0;i<json.length;i++){
var item = json[i];
var img = 'http://myappserver.com'+item.img;
list += '<li><a href="page.html?id=' + item.id + '">' +
'<img src="' + img + '" class="recipeAvatarList"/>' +
'<h4>' + item.value + '</h4>' +
'<p>' + item.familia + '</p>' +
'<span class="ui-li-count">' + item.votos + '</span></a>';
+'</li>';
}
list += '<li><a href="index.html?que='+task+'&page='+nextPage+'">Cargar más..</a></li>';
$('#mainlist').html(list).listview('refresh');
$.mobile.hidePageLoadingMsg();
});
});
在哪里
function getUrlVars() {
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
这似乎很有效,可以在第一页中加载结果,但是如果您注意到,我会附加一个链接来加载下一页:
list += '<li><a href="index.html?que='+task+'&page='+nextPage+'">Cargar más..</a>
问题是,当单击该链接时,它会正确加载下一个 URL,并且数据和响应警报具有预期的内容,但未填充列表...用户必须手动刷新该视图才能这样做..
这是因为我不应该使用 .live('pageshow')
吗?
-编辑-
页面标记是这样的
<div id="home" data-role="page" >
<header role="banner" class="clearfix" >
<h1>Title</h1>
</header>
<div data-role="content">
<div class="">
<input type="search" id="buscar_receta" placeholder="busca recetas" />
<a href="search.html" class="advancedSearchLink">+ Busqueda avanzada</a>
</div>
</div>
<div data-role="content">
<ul id="mainlist" data-role="listview" >
</ul>
</div>
</div>