Session length 是定时器的开始时间,默认为 25。 isEven 用于启动/停止定时器,如果 isEven 为 false,则定时器应该启动,如果为奇数,则应该命中clearInterval,由于某种原因没有停止执行tick()函数(它对计时器进行倒计时)。
var count = 0;
function countdown(sessionLength) {
var minutes = sessionLength - 1;
var seconds = 60;
var isEven = false;
count++;
if (count % 2 == 0) {
isEven = true;
} else {
isEven = false;
}
var myVar = setInterval(tick, 1000);
if (isEven == false) {
function tick() {
if (seconds > 0) {
seconds--;
} else {
minutes--;
seconds = 59;
}
if (minutes > 0) {
document.getElementById("time").innerHTML =
minutes.toString() + ":" + (seconds < 10 ? "0" : "") + seconds.toString();
} else {
document.getElementById("time").innerHTML =
"0:" + (seconds < 10 ? "0" : "") + seconds.toString();
}
}
} else {
console.log("reached");
clearInterval(myVar);
}
};
最佳答案
将 tick()
函数声明移到 if
block 之外
关于javascript - 清除间隔()不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34688688/