如何在第二次倒计时后停止Javascript计时器?

时间:2015-08-30 22:22:51

标签: javascript

我正在尝试创建一个番茄钟(倒数计时器,25分钟的生产力和5分钟的休息时间倒计时),我无法停止休息时间倒计时。

这是我到目前为止的Javascript:

function startTimer(duration, display) {
    var timer = duration, minutes, seconds;
    var countdown = setInterval(function () {
        minutes = parseInt(timer / 60, 10)
        seconds = parseInt(timer % 60, 10);

        seconds = seconds < 10 ? "0" + seconds : seconds;

        display.textContent = minutes + ":" + seconds;
        if (--timer < 0) {
            clearInterval(countdown);

            var breakClock = function() {
                 $("#title").text(function(i, text){
       return text === 'Breaktime' ? 'Productive Countdown' : 'Breaktime'
            }); 

             var fiveMinutes = 60 * .05,
                  display = document.querySelector('#time');
             startTimer(fiveMinutes, display);

             if (--timer < 0) {
                  clearInterval(this.countdown);
             }

            };

          breakClock();  
          }
    }, 500);
}                  
$(".startClock").click(function(){
    var twentyfiveMinutes = 60 * .25,
        display = document.querySelector('#time');
    startTimer(twentyfiveMinutes, display);
});

这是我的代码:http://codepen.io/cenjennifer/pen/pjzBVy?editors=101

仅供参考:我减少了时间,以便我可以轻松测试功能。

1 个答案:

答案 0 :(得分:2)

变化:

clearInterval(this.countdown);

为:

clearInterval(countdown);

不需要this关键字,因为countdown变量是breakClock()函数的父范围的局部变量。