devil_tulip 2015-09-25 02:36 采纳率: 50%
浏览 3333
已采纳

关于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币用来悬赏,抱歉。

  • 写回答

1条回答 默认 最新

  • 毕小宝 博客专家认证 2015-09-25 22:44
    关注

    F12模式调试下,打印下日志,看看clearInterval是否真的没执行。
    你的setInterval和clearInterval不是在同一个线程中,clearInterval是在ajax请求异步成功返回后进行的,不知道这样会不会有影响。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?