我有一个像这样的js结构:
var intervalID;
function counterUpdater(){
intervalID = setInterval(ajax_counter_upload(),10000);
}
function ajax_counter_upload(){
$.ajax({
type: "POST",
url: "plan/counter.php",
data: {tipo:'BP'},
success: function(data){
$("#spinner_msg").fadeTo(200,0.1,
function(){
$(this).html(data);
$(this).fadeTo(900,1);
});
}
});
}
function ajax_submit(){
var submit_val=$("#stato").serialize();
dest="plan/new_bp1.php";
$.ajax({
type: "POST",
url: dest,
data: submit_val,
success: function(data){
data1=data.split("|");
if(data1[0]=="Successo"){
$("#spnmsg").fadeTo(200,0.1,
function(){$(this).removeClass().addClass("spn_success").html(data1[1]).fadeTo(900,1)});
}else if(data1[0]=="Errore"){
$("#spnmsg").fadeTo(200,0.1,
function(){$(this).removeClass().addClass("spn_error").html(data1[1]).fadeTo(900,1)});
}
},
complete: function(){
clearInterval(intervalID);
setTimeout(function(){ $('.container').load('plan/home.php');},2000);
}
});
setTimeout(function(){counterUpdater();},2000);
}
目标是在ajax_submit启动时每10秒运行一次counter_updater,并在ajax_submit结束时停止它。
我现在得到的只是运行一次counter_updater。 我做错了什么?
答案 0 :(得分:1)
你的setInterval
调用有一个错误:在(预期的)回调函数名后面有括号,这意味着该函数实际上被调用一次而setInterval只获得返回值(在这种情况下没有)
只需删除括号:
intervalID = setInterval(ajax_counter_upload, 10000);
// ^^