clearInterval不起作用

时间:2014-01-31 23:38:20

标签: javascript jquery

我正在尝试创建一个简单的倒数计时器。它从输入的数字开始倒计时。

但是,我试图清除计数器到达0时的间隔。目前它似乎承认if statement,但不承认clearInterval()

http://jsfiddle.net/tmyie/cf3Hd/

$('.click').click(function () {
    $('input').empty();
    var rawAmount = $('input').val();
    var cleanAmount = parseInt(rawAmount) + 1;

    var timer = function () {

        cleanAmount--;

        if (cleanAmount == 0) {

            clearInterval(timer);
        }
        $('p').text(cleanAmount);
    };

    setInterval(timer, 500);

})

1 个答案:

答案 0 :(得分:1)

您没有将调用的返回值保存到setInterval,这是需要传递给clearInterval的值。传递计时器处理程序没有用。

var timer, timerHandler = function () {

    cleanAmount--;

    if (cleanAmount == 0) {

        clearInterval(timer);
    }
    $('p').text(cleanAmount);
};

timer = setInterval(timerHandler, 500);