我正在编写一个tower of河内游戏,在这个游戏中,每当一个div或者在我的例子中是一个形状被拖动时,计时器都应该重置。但问题是,当我第二次调用setInterval函数时,计数器开始重叠。我想要的是旧的计时器被清除,最新的计时器继续运行。
function timer() {
var timeleft = 10;
var downloadTimer = setInterval(function () {
if (timeleft <= 0) {
clearInterval(downloadTimer);
alert("Game over! You ran out of time\nPlay again ?");
location.reload();
} else {
timeleft -= 1;
document.getElementById("timer").innerHTML = timeleft;
}
}, 1000);
}
字符串
这是setInterval函数的代码。
function Drag() {
$(".draggable").draggable({
stack: $(".draggable"),
helper: "clone",
start: function () {
timer();
var parentNode = "#" + this.parentNode.id;
platforms.push(parentNode);
var shape = "#" + this.id;
sequence.push(shape);
var shapeParent = this.closest(".holder").id;
shapeParent = "#" + shapeParent;
},
});
}
型
这就是我调用timer/setInterval函数的地方
1条答案
按热度按时间iugsix8n1#
同步性与你的问题无关。你只是在开始一个新的间隔之前没有清除间隔。
start
方法中清除它-或者只是在timer()
函数的顶部清除它:字符串