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/
添加回答
舉報