ClearInterval无法正常工作

时间:2014-08-13 09:36:16

标签: javascript jquery

我正在尝试创建一些加载器。一个加载器工作正常,但是当我创建一些时,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);
})();

FIDDLY

1 个答案:

答案 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);
})();

JSFiddle

相关问题