[英]JavaScript: setInterval and clearInterval, which way is correct?
[英]How to correct the clearInterval when setInterval given to global variable in javascript?
这是我的代码
HTML代码
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li>Four</li>
</ul>
以下是一段Javascript代码
//The below line is outside of document ready
var interval;
//The below code is wraped in document ready
$("input").live("click", function(){
var length = $('li').length, start = 1;
alert(length+' : '+start);
interval = setInterval(function() {
if (length > 0 && start <= length) {
alert('IF section');
$('li:nth-child('+start+')').
removeClass('hidden').addClass('visible');
start++;
} else {
alert('Else section with before clearInterval called');
clearInterval(interval);
alert('Else section with after clearInterval called');
}
}, 3000);
});
在执行clearInterval
方法之后,这里将重复调用ELSE
部分。 一个有趣的事情是警报之前clearInterval
语句repeately叫,一段时间后, 警报 clearInterval
不叫setInterval
方法。 您可以在小提琴中找到一个示例。 在小提琴中, var interval
位于DomReady内部。 它应该在DomReady之外。 我不知道如何把它放在DomReady之外。
为什么会这样?
如何纠正呢?
检查此演示 : http : //jsfiddle.net/QZxtL/1/
您需要做的就是将clearInterval
调用更改为clearInterval(interval);
注意 :我将时间间隔更改为1000毫秒,以简化测试。 :-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.