clearTimeout()
内部setTimeout()
方法无法在JavaScript中使用
var c = 0;
var t;
function timedCount() {
document.getElementById('txt').value = c;
c = c + 1;
if (c == 5) {
clearTimeout(t);
}
t = setTimeout(function () {
timedCount()
}, 1000);
}
答案 0 :(得分:6)
您需要阻止执行其余代码,实际上您在清除t
后重新声明setTimeout
。 Fiddle
var c = 0;
var t;
function timedCount() {
document.getElementById('txt').value = c;
c = c + 1;
if (c == 5) {
clearTimeout(t);
return false;
}
t = setTimeout(timedCount, 1000);
}
或者只使用else
声明:
if (c == 5) {
clearTimeout(t);
// do something else
}else{
t = setTimeout(timedCount, 1000);
}
答案 1 :(得分:1)
当您致电clearTimeout
时,永远不会有超时清除,因为最后一个已经被解雇,而下一个尚未设置。
您希望更改逻辑以便if (c !== 5) { setTimeout(etc etc) }