我通过具有设置间隔的Ajax调用更新分区;它正常工作和更新,包括从另一个点击事件访问它时,除了在设置间隔之前进行的独立第一次调用。
通话(不更新):
$(document).ready(function(){
var c = 0;
$(".content").load('coreprocessing.php',function(){
$(".content").fadeIn(400,function(){
refreshIt();
});
});
刷新集:
var refreshId = setInterval(refreshIt,60000);
紧接着加载呼叫。
功能:
function refreshIt(){
var page = $(".navselected").attr('id');
var ids = $('.content div[id]').map(function(){
return this.id;
}).get();
$.ajax({
type:'POST',
url:page + 'functions.php',
data:{'idList[]':ids},
dataType:'json',
success:function(data){
$.each(data,function(element,load){
var elem = $("#" + element);
elem.slideUp(400,function(){
elem.removeClass("critical ok").addClass(load.status).html(load.number).slideDown(400);
if(load.status == 'critical'){ c++;}
});
});
updateInfoBar(c);
if(page == 'coreprocessing'){ updatePumpDataBar() }
c = 0;
}
});
}
当我“警告(c)”时,当load.status严重(按预期)时会弹出,但是它坚持第一次返回0。任何帮助将不胜感激。我玩过范围,但似乎无法想出这个。
-Justin
答案 0 :(得分:0)
看起来问题是c
在范围内未定义。您需要将c移出文档就绪功能。我相信这就是它第一次不起作用的原因。在c
函数refreshIt
(此后已定义)的结尾处设置c = 0;
之前,{{1}}未定义。