我正在尝试创建一些加载器。一个加载器工作正常,但是当我创建一些时,clearInterval - 不会停止计数器。
<p id='sk1'></p>
(function (){
i = 0;
function name(){
var x = $('#sk1').text(i+=1);
if( i==50 ){ clearInterval(z);}
}
var z = setInterval(name,10);
})();
答案 0 :(得分:8)
您正在全局范围内定义i
。使用var
关键字将i
保留在每个匿名函数的范围内。
目前,相同的i
变量每10ms递增4次。您的第二个计时器停止的事实恰好是i
在某个时刻落在66处并且清除您的间隔取决于i
等于 n ,而不是i
大于或等于 n 。
(function (){
//Here
var i = 0;
function name(){
var x = $('#sk1').text(i+=1);
if( i==50 ){ clearInterval(z);}
}
var z = setInterval(name,10);
})();