2015-10-08 42 views
0
function countdown() { 
     setInterval(function() { 
      seconds = seconds - 1; 

      if(seconds < 1) { 
       endGame(); 
      } 
      else { 
       if(seconds < 60) { 
        //... 
       } 
       $('.Timer').text(seconds);  
      } 

     }, 1000); 
    } 

时达到0
结束游戏功能只是重新启动与重启键的游戏,它调用结束游戏功能。的setInterval - 工作不正常倒计时时间

如果我按下重新启动按钮,秒数现在逐一减少。

function reset() { 
     seconds = 60;   
    } 

它第一次运作良好。秒数减少一秒。但是在几次重启后,秒数会很快减少。它在五到十秒内达到零。

function startGame() { 
     reset();    
     countdown(); 
     $('.start-button').hide(); 
    } 

function endGame() { 
     $('.start-button').show(); 
    } 
+0

你在哪里声明变量秒计时器的多个实例?也许这是每次调用倒计时时可变范围 – kuba

+1

的问题,您将添加另一个setInterval。所以每次都会更快倒数。您需要停止间隔,或者只启动一次 –

回答

3

一旦倒计时结束后,您需要清除计时器,否则会出现运行造成上述bahavior

function countdown() { 
    var interval = setInterval(function() { 
     seconds = seconds - 1; 

     if (seconds < 1) { 
      clearInterval(interval); 
      endGame(); 
     } else { 
      if (seconds < 60) { 
       //... 
      } 
      $('.Timer').text(seconds); 
     } 

    }, 1000); 
} 
+0

http://jsfiddle.net/arunpjohny/s2sdsfk9/ –