我如何让我的柜台停止在0?递减为负数

时间:2018-10-30 01:30:54

标签: javascript setinterval clearinterval

我的代码有什么问题?我无法使计时器停止在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!");

}

1 个答案:

答案 0 :(得分:1)

您的问题是您的if语句仅运行一次,但从未对其进行过检查,然后再也不会运行。如果将if语句移至减量函数,则应该像黄金一样。

该功能可能类似于

function decrement() {
    seconds--;    
    if (seconds === 0) {
        stop();
        alert("Time's Up!");
    }
    $("#timer").html("<h2>" +"Time Remaining: " + seconds + "</h2>");
}