我正在尝试创建一个动态列表视图,它每隔5秒重新加载一次更改。它在第一次加载时加载得很好,但是我的setinterval不能正常工作。它每隔5秒更新一次菜单,但即使做了更改,它也不会更新我的菜单?
这是我到目前为止所得到的:
$(document).on('pageshow', function (){
var userid=1;
$.mobile.loading('show');
$.getJSON("http://mypage.com/playermenu.php?callback=?&userid="+userid,
function(data){
var content = []
$.each(data , function(i,val){
content.push(val.list);
});
$("#games").html(content.join(""));
$('#games').listview('refresh');
$.mobile.loading('hide');
});
});
setInterval(function(){
$.mobile.loading('show');
$.getJSON("http://mypage.com/playermenu.php?callback=?&userid="+userid,
function(data){
var content = []
$.each(data , function(i,val){
content.push(val.list);
});
$("#games").html(content.join(""));
$('#games').listview('refresh');
$.mobile.loading('hide');
});
}, 5000);$.mobile.loading(‘$.mobile.loading’);在5秒后开始,但没有到达隐藏(‘hide’);
如有任何帮助,我们将提前表示感谢:-)
发布于 2013-04-18 00:43:56
var user_id位于超时函数的不同作用域中。将超时时间放入文档就绪块中,问题就解决了。此外,考虑重构您的代码,以避免如此多的重复并提高可维护性。例如:
$(document).on('pageshow', function () {
var userid = 1,
url = 'http://mypage.com/playermenu.php?callback=?&userid=' + userid,
callback = function (data) {
var content = [];
$.each(data, function (i, val) {
content.push(val.list);
});
$('#games').html(content.join('')).listview('refresh');
$.mobile.loading('hide');
},
fetchData = function () {
$.mobile.loading('show');
$.getJSON(url, callback);
};
fetchData();
setInterval(fetchData, 5000);
});https://stackoverflow.com/questions/16065496
复制相似问题