我正在尝试在javascript中创建一个简单的计时器,只需按一下按钮就可以从5倒数到0。这是我的按钮onclick的功能。我被卡住了,因为它没有倒计时。任何关于我的逻辑错误的提示都会得到证实。感谢。
function countdown(num) {
if (num >= 0) {
document.getElementById("counter").innerHTML=num;
timer=setTimeout("countdown()", 1000);
num--;
}
else
clearTimeout(timer);
}
答案 0 :(得分:6)
主要问题是您对countdown
的评估,因为字符串未正确传递num
。请尝试使用函数表达式。
function countdown(num) {
if (num >= 0) {
document.getElementById("counter").innerHTML=num;
setTimeout(function () { countdown(num - 1) }, 1000);
}
}
此外,不需要clearTimeout
或全局timer
值。
答案 1 :(得分:1)
这个怎么样?
button.onclick = function () {
var n = 5;
(function loop() {
label.textContent = n;
if ( n > 0 ) {
n -= 1;
setTimeout( loop, 1000 );
}
})();
};