日期:2014-05-16  浏览次数:20524 次

怎么清除页面所有的定时器?
页面上有N多个定时器setTimeout,有办法一次性清除掉么?

------解决方案--------------------
试一下,把SETTIOMOUT重写,然后调用。这里考虑重写是要是解决你的SETTIOMOUT没有记录在变量里的问题
------解决方案--------------------

 window.clearInterval(mapPanel.drawTick);

mapPanel.drawTick可以理解为你的定时器
弄个东西把你的定时器装起来,循环清除 clearTimeout
------解决方案--------------------
定时器返回值其实就是一个整数,并且是顺序生成的
你可以写一个循环清楚定时器
如:
var end = setTimeout(function(){},1);
var start = (end -100)>0?end-100:0;
for(var i=start;i<=end;i++){
    clearTimeout(i);
}
在你构造的定时器数量不是太夸张(小于100)的情况下,该方法可以清楚所有定时器
------解决方案--------------------
重新封装自己的一套setTimeout