function startTimer(duration, activity) {
function countdown() {
if ((duration - 1) > 0) {
duration--;
$("#timer").html(convertNumbers(duration))
} else {
if (activity === "session") {
startBreak();
} else {
startSession();
}
}
}
setInterval(countdown, 1000)
}
function startSession() {
var time = parseInt(($("#session_time").text()), 10);
startTimer(time * 60, "session");
$("#activity").html("Session");
}
function startBreak() {
var time = parseInt(($("#break_time").text()), 10);
startTimer(time * 60, "break");
$("#activity").html("Break");
}
开始按钮:
$("#start").click(function() {
startSession();
});
我正在使用setInterval创建一个Pomodoro时钟,每秒运行一次以减少一秒钟。按下开始按钮时,startSession()函数会获取时间并调用startTimer()函数,该函数在持续时间为0时指向setBreak()。
理想情况下,它会在startSession和startBreak之间切换,但我会在" #timer"中设置的文本(剩余时间)中出现闪烁和随机数字。在最初倒计时之后。当startTimer()调用startBreak()时,这可能与不结束Interval有关。
答案 0 :(得分:1)
您永远不会清除初始间隔,因此当中断发生时,两个间隔同时运行。
setInterval
会返回您可以传递给clearInterval()
的间隔的ID,以便再次停止。
var timer = setInterval(function () {
console.log('A second has passed!');
}, 1000});
setTimeout(function () {
clearInterval(timer);
console.log('Seconds no longer passes');
}, 10 * 1000);
有关详细信息,请参阅setInterval和clearInterval的文档。