FlipClock .getTime () не работает?Не обновляет возвращаемое значение - PullRequest
0 голосов
/ 22 ноября 2018

Я задал похожий вопрос, но не получил.Так что я перефразирую это.Почему функция flipClock getTime () не возвращает значение при каждом изменении циферблата?Когда я вывожу это на консоль, значение всегда остается равным 10. Оно никогда не начинает обратный отсчет.Однако часы работают отлично.Как узнать текущее время на часах?

var clock;

  // Instantiate a counter
  clock = new FlipClock($('.clock'), 10, {
    clockFace: 'MinuteCounter',
    autoStart: false,
    countdown: true
  });

if(clock.getTime() == 0){
   //Redirect to another page
   window.location.href = "example.html";
}else{
 console.log("This is the time now" + getTime());
}

Ответы [ 2 ]

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

, потому что вы вызываете его один раз, его необходимо привязать к событию interval.создать его в функции обратного вызова

var clock = new FlipClock($('.clock'), 10, {
  clockFace: 'MinuteCounter',
  autoStart: true,
  countdown: true,
  callbacks: {
    interval: function() {
      var time = this.factory.getTime().time;
      console.clear()
      console.log("Countdown now: " + time);
      if (time == 0) {
        alert('Countdown finished!');
      }
    }
  }
});
.clock{margin-top:30px}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flipclock/0.7.8/flipclock.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/flipclock/0.7.8/flipclock.min.js"></script>


<div class="clock"></div>
0 голосов
/ 22 ноября 2018

Простите, если я неправильно понял ваш вопрос.Если этот ответ далек от цели и покровительствует, я прошу прощения.

Код, который вы предоставили, будет выполнен только один раз.Сразу после создания часов звоните clock.getTime().Результат будет 10 в этот момент.Следовательно, ваш код перенаправления не будет выполнен (поскольку результат не будет равен 0), и вы сразу же попадете на код внутри вашего блока else.Этот код будет записывать текущее время часов на консоль (которое все равно будет равно 10, потому что код выполняется так быстро).

Для того, чтобы наблюдать за обратным отсчетом часов, вам нужно будет повторно вызвать clock.getTime(),Вы должны прочитать о концепции опроса.Вы можете найти setInterval полезным (см. https://alligator.io/js/settimeout-setinterval/).

...