我的代码有什么问题?我无法使计时器停止在0。它一直下降到负数。我已经设置了clearInterval,为什么计时器没有停止?
var seconds = 30;
$("#timer").on("click", run);
$("#timer").on("click", show);
var timer;
function run() {
clearInterval(timer);
timer = setInterval(decrement, 1000);
}
function decrement() {
seconds--;
$("#timer").html("<h2>" +"Time Remaining: " + seconds + "</h2>");
}
// Stop function
function stop() {
clearInterval(timer);
}
// When seconds hit zero
if (seconds === 0) {
stop();
alert("Time's Up!");
}
答案 0 :(得分:1)
您的问题是您的if语句仅运行一次,但从未对其进行过检查,然后再也不会运行。如果将if语句移至减量函数,则应该像黄金一样。
该功能可能类似于
function decrement() {
seconds--;
if (seconds === 0) {
stop();
alert("Time's Up!");
}
$("#timer").html("<h2>" +"Time Remaining: " + seconds + "</h2>");
}