3 回答
TA贡献1796条经验 获得超4个赞
当有人再次点击开始按钮时清除以前的计时器。
start.addEventListener("click", function () {
clearTimeout(id);
startTimer(5, 0);
}, false);
签出更新的小提琴: http://jsfiddle.net/Lthvxeda/1/
TA贡献1835条经验 获得超7个赞
在执行计时器之前,您应该在单击时清除计时器。
补充笔记:
我建议使用不同的条件,这样嵌套更少,可读性更高。
请注意,您的程序中存在一个错误,您应该将秒数重置为 59,而不是 60——因为秒数已经过去了。
这是一个简单的例子:
let timerId;
function renderCountDownTimer(minutes, seconds) {
timer.textContent = minutes + ":" + seconds;
if(seconds==0 && minutes==0) {
return;
}
if(seconds == 0){
minutes--;
seconds = 59;
} else {
seconds--;
}
timerId = setTimeout(() => {
renderCountDownTimer(minutes,seconds)
},1000)
}
start.addEventListener("click", function () {
clearTimeout(timerId)
renderCountDownTimer(5, 0);
}, false);
添加了小提琴: https: //jsfiddle.net/fqdhaxz7/1/
添加回答
举报