2013-11-15 4 views
0

код выглядит следующим образом:Переустановка setinterval в JS

function startTimer(counter) { 
    var interval = setInterval(function() { 
     counter--; 
     $('#timer').html(counter); 
     // Display 'counter' wherever you want to display it. 
     if (counter == 0) { 
      clearInterval(interval); 
      $('#question').html("Time ended"); 
      setTimeout(function() { 
       window.location.href = "/"; 
      }, 5000); 
      return false; 
     } 
    }, 1000); 
} 

То, что я хочу сделать, это, когда я называю эту функцию несколько раз, каждый раз, чтобы сбросить таймер на 30 секунды и убить все предыдущие экземпляры. В настоящее время это связано с прошлыми намерениями, когда я звоню несколько раз. Что я делаю не так?

+0

@naomik жаль, что? – heron

+0

Ссылка: http://stackoverflow.com/questions/8126466/javascript-reset-setinterval-back-to-0 – archu

ответ

0

Вы должны определить интервал уага вне функции:

var interval; 
    function startTimer(counter) { 
     interval = setInterval(function() { 
      counter--; 
      $('#timer').html(counter); 
      // Display 'counter' wherever you want to display it. 
      if (counter == 0) { 
       clearInterval(interval); 
       $('#question').html("Time ended"); 
       setTimeout(function() { 
        window.location.href = "/"; 
       }, 5000); 
       return false; 
      } 
     }, 1000); 
    } 
Смежные вопросы