2014-11-11 2 views
0

http://jsfiddle.net/vvccvvcc/mu45bptk/пауза отсчет Javascript JQuery

как приостановить таймер? Я хочу, чтобы это остановить, когда он получает до 5 секунд

Я попробовал это, как видно на скрипке

else { 
     isWaiting = true; 
     seconds--; 

     if (seconds == 5) { 
      seconds=seconds;}  




    } 

не работает

+0

почему бы не просто очистить интервал снова? 'clearInterval (countdownTimer);' – bencripps

ответ

0

Таймер инициализируется setInterval(GameTimer, 1000);

if (seconds == 5) { 
     clearInterval(countdownTimer); 
    } else { 
     seconds--; 
    } 

Для прекращения вызова функции вам необходимо очистить интервал. Кроме того, если вы не хотите, чтобы очистить интервал можно сказать

if (seconds > 5) { 
     seconds--; 
    } 

так, как вы написали это, second является независимо пониженным состоянием (так как это до if заявления) и, следовательно, second = second становится неуместной ,

0

Это вы что искали? Fiddle: http://jsfiddle.net/mu45bptk/2/

var isWaiting = false; 
var isRunning = false; 
var seconds = 10; 
var countdownTimer; 
var finalCountdown = false; 

function GameTimer() { 
    if (isWaiting) { 
     return; 
    } 
    var minutes = Math.round((seconds - 30)/60); 
    var remainingSeconds = seconds % 60; 
    if (remainingSeconds < 10) { 
     remainingSeconds = "0" + remainingSeconds; 
    } 
    document.getElementById('waiting_time').innerHTML = minutes + ":" + remainingSeconds; 
    if (seconds == 0) { 

     if (finalCountdown) { 
      clearInterval(countdownTimer); 
     } else { 
      finalCountdown = true; 
     } 

    } else {    
     if (seconds == 5) {    
      isWaiting = true; 
     } else { 
      seconds--; 
     } 




    } 
} 
countdownTimer = setInterval(GameTimer, 1000); 

Вам нужно установить isWaiting только если seconds == 5, а затем проверить isWaiting при каждом запуске GameTimer()

Смежные вопросы