我正在尝试调用一个函数,该函数在运行时清除timeOut(以停止动画循环)。这是我目前正在尝试的方法:
function gameStop(){
clearTimeout(gameLoop);
}
function gameLoop() {
$('h1').show("slow")
.animate({"marginLeft":"300px"},4000)
.animate({"marginLeft":"0px"},4000);
$('h1').click(function(){
gameStop();
});
gameLoop();
}
setTimeout(gameLoop, 4000);
gameLoop();
最佳答案
哇,老实说,这看起来很混乱。
首先,您不想在每个游戏循环中添加点击事件,因此请将其放置在游戏循环之外。
第二:清除超时无法像这样工作。
通常,使用相同名称的功能会很糟糕...
尝试这样的事情(不知道代码是否有效或您的循环是否有意义,但这实际上是您想要的)。
var timeOut = null;
$('h1').click(function(){
clearTimeout(timeOut);
});
function gameLoop(){
$('h1').show("slow")
.animate({"marginLeft":"300px"},4000)
.animate({"marginLeft":"0px"},4000);
};
timeOut = setTimeout(gameLoop, 4000);