也许只是睡眠剥夺,但我无法理解我做错了什么。
我正在使用countDown
来调用onLoad
函数setInterval
。
在countDown
函数内部,当数字达到0时,我调用clearTimeout
,除非它达到2时被调用。
我做错了什么?
这是一个片段。
var interval, count = 5;
countDown()
interval = setInterval(countDown, 1000);
function countDown() {
document.body.innerHTML = count
count--
if(count === 0) {
clearInterval(interval)
document.body.innerHTML = "Redirecting to ....."
}
}

答案 0 :(得分:1)
function countDown() {
document.body.innerHTML = count;
if(count === 0) {
clearInterval(interval)
document.body.innerHTML = "Redirecting to .....";
} else {
count--;
}
}
答案 1 :(得分:1)
这是因为您首先减少计数器然后进行评估,因为错过了这一步
var interval, count = 5;
countDown();
interval = setInterval(countDown, 1000);
function countDown() {
if(count === 0) {
clearInterval(interval)
document.body.innerHTML = "Redirecting to ....."
}
else
{
document.body.innerHTML = count
count--
}
}

答案 2 :(得分:1)
只需将count--
放在if语句之后,如果要在此之后阻止执行,则将return;
放在if语句的末尾。
var interval, count = 5;
countDown()
interval = setInterval(countDown, 1000);
function countDown() {
document.body.innerHTML = count;
if(count === 0) {
clearInterval(interval);
document.body.innerHTML = "Redirecting to .....";
return;
}
count--
}