[英]setInterval doesn’t work continuously and stops after first iteration
開始時間是01:59
。 當我刷新頁面時,它變為01:58
並停止。 它應該變成01:59
,然后是01:58
,然后是01:57
等等。
function timer() { let time = 119, minutes = Math.floor(time / 60), seconds = time % 60; if (minutes < 10) { minutes = `0${minutes}`; } else if (seconds < 10) { seconds = `0${seconds}`; } if (seconds > 0) { seconds = seconds - 1; } else { clearInterval(SI); } document.getElementById('div').innerHTML = `${minutes}:${seconds}`; } let SI = setInterval(() => { timer(); }, 1000);
<div id="div"></div>
您在每次time()
迭代時都在休息time
變量。 將初始化移到 function 之外。
此外,您忘記在time--
調用時間之后從time
變量中刪除 1 秒 - ;
function timer() { let minutes = Math.floor(time / 60), seconds = time % 60; if (minutes < 10) { minutes = `0${minutes}`; } else if (seconds < 10) { seconds = `0${seconds}`; } if (seconds > 0) { time--; } else { clearInterval(SI); } document.getElementById('div').innerHTML = `${minutes}:${seconds}`; } let time = 119; let SI = setInterval(() => { timer(); }, 1000);
<div id="div"></div>
解決了。 即使我不知道沒有代碼的情況下分鍾是如何運行的 Oo
let time=123;
function timer(){
let minutes=Math.floor(time/60),
seconds=time%60;
/*if(minutes<10){
minutes=`0${minutes}`;
}if(seconds<10){
seconds=`0${seconds}`;
}*/
if(time>0){
time=time-1;
}
document.getElementById("div").innerHTML=`${minutes}:${seconds}`;
}
setInterval(()=>{
timer();
},1000);
<div id="div"></div>
您的腳本應該設置為計時器組件的setInterval(timer,1000)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.