Очистить интервал таймера в секундах, настоящий новичок в Jquery - PullRequest
0 голосов
/ 14 декабря 2018

Возникли некоторые проблемы при попытке очистить интервал в моем коде.Мне просто нужно остановить его, как только он достигнет 0. Я попытался установить его внутри функции, также объявив clearInterval в качестве переменной, но я чувствую себя все более смущенным каждый раз, когда не вижу никаких ошибок, когдаведение журнала консоли.Что я здесь не так делаю?Заранее спасибо.Вот что я делаю:

var timer = 10;
$("#timer").html("Timer");


function timerStart() {
    timer--;
    $("#timer").html(timer);
}

var intervalId = setInterval(timerStart, 1000);

if(timerStart === 0) {
    clearInterval(intervalId);
}

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Попробуйте:

    var timer = 10;

    $("#timer").html("Timer");

    var intervalId = setInterval(timerStart, 1000);

    function timerStart() {
      timer--;
      $("#timer").html(timer);
      if(timer == 0) clearInterval(intervalId);
    }
0 голосов
/ 14 декабря 2018

Вы довольно близко!

Я сделал несколько изменений:

  1. Переместил объявления переменных вместе
  2. Вместо ручной установки .html() дляначальное значение, просто позвоните timerStart().Затем вы можете уменьшить его потом.
  3. Выполните проверку timer прямо внутри метода timerStart().

    var timer = 10;
    var intervalId = null;

    function timerStart() {
      $("#timer").html(timer);
      if (timer === 0) {
          clearInterval(intervalId);
      }
      timer--;
    }

    timerStart();
    intervalId = setInterval(timerStart, 1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="timer"></div>
...