在這http://jsfiddle.net/kuox9ax2/我有一個計時器倒計時。如何在達到零後停止計時器?
- 當它達到零時,它重新開始。它不應該那樣做。
- 由於JS是異步的,我不知道如何讓它調用一個函數,只有當它已經達到零。
我試圖在startTimer()
return true
,但後來我碰到,JS是異步的,所以它立即返回true。
有人可以展示如何解決這兩個問題?
function startTimer(duration, display) {
var timer = duration, minutes, seconds;
setInterval(function() {
minutes = parseInt(timer/60, 10)
seconds = parseInt(timer % 60, 10);
minutes = minutes < 10 ? "0" + minutes : minutes;
seconds = seconds < 10 ? "0" + seconds : seconds;
display.textContent = minutes + ":" + seconds;
if (--timer < 0) {
timer = duration;
}
}, 1000);
}
window.onload = function() {
var time = 5, display = document.querySelector('#time');
var isDone = startTimer(time, display);
if (isDone) {
alert("a");
}
};
<div>Timeout in <span id="time">00:00</span> minutes</div>
你應該張貼的你已經試圖表明,你不問別人做你的工作你一些例子或解釋。 – DevlshOne
您是否嘗試過使用'setTimeout'而不是'setInterval' - 請參閱文檔[here](http://www.w3schools.com/js/js_timing.asp) – gus27
@ gus27是的,但後來我發現它的問題不會每秒更新並且只在完成時更新。 –