TransWikia.com

как отключать таймер setInterval ? Работают параллельно несколько

Stack Overflow на русском Asked by Junior on February 3, 2021

сразу таймер запускается потом если время уходит то он клацает на #next,
если он все делает сам то норма, а если я не дождусь таймера клацну на #next то таймер, что работал будет работать и появится новый т.е (как и должен быть а старый должен же уже не работать, если несколько раз клацну то параллельно будет много работать к примеру на одном осталось 2 сек, на другом 5 сек на последнем 8 сек и т.д.

$(".next").click(function () {
  timerSite = function(status) {
          if (status) {
              const secondsToAnswer = 10; // Количество секунд для ответа
              let timeLeft = secondsToAnswer;
              const timer = setInterval(function(){
                if (timeLeft > 0) { // На последней секунде
                  $('.timer').text(timeLeft + ' сек');
                  timeLeft--;
                } else {
                  $('.timer').text('Время вышло');
                  $('#next').click();
                   clearInterval(timer);
                }
              }, 1000);
          }else {
              clearInterval(timer);
          }
        }
        //пробовал передать false выдает ошибку :
  //Uncaught ReferenceError: timer is not defined
        timerSite(false);

        //тут он запускается
        timerSite(true);
      
});

One Answer

У вас константа timer инициализируется внутри условия когда оно истинно, т.е. когда передаёте в функцию true. Следовательно когда передаёте false функция пытаемся сбросить несуществующий таймер

Answered by Анатолий Шевелев on February 3, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP