2016-02-29 3 views
-1

http://jsbin.com/hafejebaho/edit?html,outputКак этот таймер JS приостанавливается?

Привет всем. Я нашел этот код таймера, и он функционирует довольно хорошо. Я пытаюсь понять логику этого, и я не могу понять, как таймер приостанавливается, когда я нажимаю кнопку startPause.

в соответствии с кодом, когда вы нажимаете startPause при запуске == 0, начинается приращение(). однако, когда вы снова нажимаете startPause при запуске == 1, то нет функции, которая фактически останавливает таймер. как это возможно. Я вижу, что для запуска установлено значение 0, а имя кнопки изменяется на «возобновить», но нет никакой другой функции, чтобы фактически остановить таймер. Я бы подумал, что они должны быть какой-то функцией таймера прерывания.

его нуб вопрос, но я был бы признателен за любые ответы ... ТХ ..

+0

Если вы нажмете startPause и запустили таймер, установите переменную 'running' в' 0', и если работа отличается от 1, функция 'increment' не будет вызывать себя после таймаута. – jcubic

ответ

0

Это из-за increment() функции:

function increment() { 
    if (running == 1) { 
     setTimeout(function() { 
      time++; 
      document.getElementById("output").innerHTML = time; 
      increment(); 
     }, 100); 
    } 
} 

В частности, логика внутри функции increment() будет работать только если running == 1. Начиная с running == 0, когда вы нажимаете паузу, логика останавливается.

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