繁体   English   中英

重置计时器?

[英]Resetting a timer?

重置倒数计时器我有点麻烦。 这是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:00开始并下降到零。

  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); 

修复了DEMO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM