问题描述
- 关于setInterval启动但clearInterval不能停止的问题
-
function setTimer(){
var spanId;
<%
//startRecord
//endRecord
c = startRecord+1;
while(c<=endRecord+1){
%>
spanId = 'num<%=c%>';
if(document.getElementById(spanId)){
if('' == $.trim(document.getElementById(spanId).innerHTML)){
time<%=c%> = setInterval("getRandNum('<%=c%>')",10);
}
}
<%
c++;
}
%>
//time1 = setInterval("getRandNum(num1)",10);
document.getElementById("start").disabled = true;
document.getElementById("end").disabled = false;
}function ct1(showSpan){////////////////////////////////////////////////////////////////
var divname = 'num'+showSpan;if(document.getElementById(divname)){
//alert('1');
$.ajax({
type: "POST",
url: "setAction.jsp",
data: {ac:'getRndNumAndSetOrder',rndOrder:showSpan},
beforeSend:function(XMLHttpRequest){
//alert('before');
},
success: function(msg){
//alert($.trim(msg));
if('' != $.trim(msg)){
clearInterval('time'+showSpan);
document.getElementById(divname).innerHTML = $.trim(msg);
}
},
complete:function(XMLHttpRequest,textStatus){
//alert('complete');
},
failure:function (result) {//alert('Failed');
}
});
}
//alert('2');
}
function ct(){
<%
c = startRecord+1;
while(c<=endRecord+1){
%>
ct1('<%=c%>');
<%
c++;
}
%>
}
在按一个按钮使setInterval启动,但是按另一个按钮后clearInterval不能停止。我是一个大学刚毕业的新人,也是第一次来提问,所以可能没有C币用来悬赏,抱歉。
解决方案
F12模式调试下,打印下日志,看看clearInterval是否真的没执行。
你的setInterval和clearInterval不是在同一个线程中,clearInterval是在ajax请求异步成功返回后进行的,不知道这样会不会有影响。