【发布时间】:2016-01-09 01:26:10
【问题描述】:
会话长度是定时器的开始时间,默认为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);
}
};
【问题讨论】:
-
当 setInterval 实际不存在时(因为它在 if 块中),您将 tick 传递给它
标签: javascript timer