我在重置倒数计时器方面遇到了一些麻烦。这是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);
}
};
非常感谢任何帮助!
答案 0 :(得分:3)
请考虑以下更改:
首先将计数设置为全局变量:
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);