可能不是最清晰的標題,但在這裏 - 我需要在頁面上顯示兩個獨立的倒計時,接受每個用戶輸入的初始值。當一個達到零時,另一個開始並倒數至零。代碼如下,並按預期工作。jquery - 循環嵌套函數和setInterval()
我調用Timer1函數,該函數檢查變量是否存在起始值,如果存在,則計數開始。當計數爲零時,我清除間隔,顯示重置爲起始值,並觸發第二定時器,如果它具有一個指定一個值:
function Timer1() {
var gDuration = goTime;
countdown = setInterval(function() {
if (gDuration >= 0) {
$("#durationValue").html(ToTime(gDuration));
gDuration--;
}
else {
clearInterval(countdown);
$("#durationValue").html(ToTime(goTime));
if (restTime != 0) {
Timer2();
}
}
}, 1000);
}
function Timer2() {
var rDuration = restTime;
countdown = setInterval(function() {
if (rDuration >= 0) {
$("#restValue").html(ToTime(rDuration));
rDuration--;
}
else {
clearInterval(countdown);
$("#restValue").html(ToTime(restTime));
}
}, 1000);
}
下一步是,以允許過程出馬一定數量的循環 - 我嘗試在for循環中將Timer1中的setInterval包裝起來,這不起作用。任何想法如何更好地去做這件事?
什麼是'restTime'和'goTime'?另外,你應該總是使用'Date.now()'來獲得實際的時間,間隔是不可靠的。 – Bergi
restTime和goTime是每個計時器的持續時間。定時器與實際時間無關,它們只是提供了一個計數機制 – Nathan