2017-08-03 193 views
0

目前正在使用一個簡單的番茄鍾,但我遇到了一個我無法解決的問題。當您按下開始按鈕時,定時器會倒計時,但是它會在00:01而不是00:00改變模式。有人可以偷看並提出導致此錯誤的原因嗎?我的計時器計數不正確

var flag = false; 
    var timer; 
    var work = 2; 
    var count = 0; 
    var breakTime = 3; 
    var workTime = 4; 
    var active = 'break'; 

    $('.mins').html(updateNum(work)); 
    $('.secs').html(updateNum(count)); 
    $('.session-minutes').html(work); 

function workTimer() { 

    if(count < 0) { 
    work--; 
    count = 2; 
    } 
    else if (work == 0 && count == 0) { 

    if(active === 'work') { 
     $(".timer-header").html('Work Time!'); 
     work = workTime; 
     $('.mins').html(updateNum(work)); 
     return active = 'break'; 
    } 
    if (active === 'break') { 
     $(".timer-header").html('Break Time!'); 
     console.log(active); 
     work = breakTime; 
     $('.mins').html(updateNum(work)); 
     return active = 'work'; 
    } 
    } 

    $('.mins').html(updateNum(work)); 
    $('.secs').html(updateNum(count)); 
    count--; 
} 
$('.start-button').click(function() { 
    if (flag == false) { 

    timer=setInterval(workTimer,1000); 
    $(this).html("stop"); 
    flag = true; 
    return flag; 
    } 
    else if(flag == true){ 

     clearInterval(timer); 
     $(this).html("start"); 
     flag = false; 
     return flag; 
    } 
}) 

$('.reset-button').click(function() { 
    if(flag == false) { 
    work = 10; 
    count = updateNum(0); 
    $('.mins').html(work); 
    $('.secs').html(count); 
    clearInterval(timer); 
    } 

}) 

$('.session-plus').click(function() { 
    if(flag == false) { 
    if (work < 30) { 
     $('.mins').html(updateNum(++work)); 
     $('.session-minutes').html(work); 
    } 

    } 

}) 

$('.session-minus').click(function() { 
    if(flag == false) { 
    if (work > 1) { 
     $('.mins').html(updateNum(--work)); 
     $('.session-minutes').html(work); 
    } 
    } 

}) 

function updateNum(num) { 
    if(num < 10 && num.length != 2) { 
     return num = "0" + num; 
    } 
    else { 
     return num; 
    } 

} 

https://jsfiddle.net/6vnkgt3h/

+0

這樣嗎? https://jsfiddle.net/6vnkgt3h/1/ –

+0

仍然是同樣的問題。當工作模式結束時,休息模式從03:01開始,應該從03:00開始 – mati

+0

不確定你的意思,當我運行計時器時找不到任何問題 –

回答

0

的問題是:

if(count < 0) { 
    work--; 
    count = 2; 
} 

正確的是:count = 59;

工作演示here

+0

出現同樣的問題。在這一點上,我給了2秒鐘不等待更改模式。 – mati