Функции setInterval() и setTimeout() выполняют свои задачи — но работать с ними не удобно, когда следует обрабатывать скрипт до определенного момента. Сейчас приведу найденный на просторах stackoverflow пример остановки запущенного таймера.
Итак, код с пояснениями ниже.
// объявляем глобальную переменную
var timer;
function endAndStartTimer() {
// вырубаем запущенный таймер
window.clearTimeout(timer);
// если таймер надо продолжать
if( needToStopTimer === false ){
// интервал для таймера
var millisecBeforeRedirect = 10000;
// создаем новый таймер
timer = window.setTimeout(function(){alert('Hello!');},millisecBeforeRedirect);
}
}
.....
endAndStartTimer()
Постарался прокомментировать максимально подробно. Суть в том, что продление итераций таймера зависит от значения переменной needToStopTimer. Если таймер следует остановить — значение должно быть true.
Найдено здесь.