簡體   English   中英

setInterval 不能連續工作並在第一次迭代后停止

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM