重置计时器

Resetting a timer?

本文关键字:计时器      更新时间:2023-09-26

我在重置倒计时计时器时遇到了一些问题。这是JSFiddle。这基本上是一个简单的游戏,你有5秒钟的时间来选择一个单词,这个单词是一个给定单词的变位符号。

我基本上是在尝试创建一个resetTimer()函数(第166行),如果您选择了正确的答案,它会将计时器设置回5:00。

这是我代码中要调用resetTimer()函数的地方。

  view.updateData = function() {
    view.assignWords();
    view.displayTimer();
    for(var i = 0; i < this.buttons.length; i++) {
      this.buttons[i].addEventListener('click', function(event) {
        if(event.target === dictionary.correctButton) {
          dictionary.words.pop(this.currWord);
          dictionary.updateWordCount();
          view.assignWords();
          view.updateScore();
          view.resetTimer();
        } else {
          view.displayLossScreen();
        }
      });
    }
  };

这是我的计时器的代码,从5点开始,一直到0。

  view.displayTimer = function() {
    var count = 500;
    var timer = setInterval(countdown, 10);
    function countdown() {
      if(count === 0) {
        clearInterval(timer);
        view.displayLossScreen();
      } else {
        count--;
      }
      document.getElementById("timer").innerHTML = (count / 100).toFixed(2);
    }
  };

任何帮助都将不胜感激!

考虑以下更改:

第一次设置计数为全局变量:

var count = 500;//global variable
view.resetTimer = function() {
    count=500;
  };

更新演示

更新:

由于线路:,计时器运行得越来越快

var timer = setInterval(countdown, 10);//setting new variable with interval every time

我已经将timer设置为全局变量,并在每次启动前清除它:

var timer;//setting global variable
clearInterval(timer);//clearing timer
timer = setInterval(countdown, 10); 

固定演示