【发布时间】:2017-11-30 10:15:42
【问题描述】:
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 制作一个番茄钟,它每秒运行一次以递减一秒。当按下开始按钮时,startSession()函数抓取时间并调用startTimer()函数,当持续时间为0时,该函数指向setBreak()。
理想情况下,它会在 startSession 和 startBreak 之间交替,但在初始倒计时后,“#timer”中设置的文本(剩余时间)中会出现闪烁和随机数。这可能与 startTimer() 调用 startBreak() 时没有结束 Interval 有关。
【问题讨论】:
-
This might have something to do with not ending the Interval- 你是对的,你需要使用clearInterval...你还需要保存间隔ID以便你可以清除它
标签: javascript