我在函数中有一个 setinterval,在第一次点击时一切似乎都很好,但每次后续点击都会加速这个计时器。我不明白为什么。
function startGame() {
var myVar=setInterval(function(){myTimer()},100);
}
我在函数中有一个 setinterval,在第一次点击时一切似乎都很好,但每次后续点击都会加速这个计时器。我不明白为什么。
function startGame() {
var myVar=setInterval(function(){myTimer()},100);
}
第二次单击时,第一个间隔也有效,因为此事件在 100 毫秒内发生两次。试试这个:
var myVar;
function startGame() {
if(myVar)
clearInterval(myVar);
myVar=setInterval(function(){myTimer()},100);
}
或者:
var myVar;
function startGame() {
if(!myVar)
myVar=setInterval(function(){myTimer()},100);
}
Setinterval 将函数设置为每 X 毫秒运行一次,在你的情况下,我猜你点击一次,它开始每 100 毫秒运行一次,然后你再次点击,它开始第二次每 100 毫秒运行一次(所以现在,平均每 50 毫秒运行一次)。
我会推荐 setTimeout,但我认为这也不是你需要的。我认为您正在尝试将 setinterval 用作游戏循环,对吗?在这种情况下,您需要一种只运行一次的方法。