我正在尝试创建一个动态列表视图,它每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('show'); 5秒后开始,但没有到$ .mobile.loading('hide');
任何帮助都表示赞赏,并提前感谢: - )
答案 0 :(得分:2)
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);
});
答案 1 :(得分:1)
我认为你的user_id变量可能在setInterval的匿名函数中不可见。