我有这个循环可以正常工作:
function countdown(counter) {
x = counter;
if (x > 0) {
x--;
alert(x + "/5");
if (x > 0) {
setTimeout(function () {
countdown(x);
}, 500);
}
}
};
countdown(6);
但我希望能够杀死它,然后通过按下按钮重新启动它。我想重新开始循环,不管我按下按钮时它的数字是多少。
在过去的几个小时里我无处可去。
这是一个 jsfiddle:http://jsfiddle.net/4vtPH/4/
最佳答案
您可以使用 clearTimeout
(documentation)
var timeout;
function countdown(counter) {
x = counter;
if (x > 0) {
x--;
alert(x + "/5");
if (x > 0) {
timeout = setTimeout(function () {
countdown(x);
}, 2000);
}
}
};
$('input').click(function() {
clearTimeout(timeout);
countdown(6);
});
countdown(6);
Fiddle
关于jquery - 如何杀死 javascript setTimeout 循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17936345/