gpt4 book ai didi

javascript - 如何重新启动 setInterval

转载 作者:行者123 更新时间:2023-11-28 20:00:01 24 4
gpt4 key购买 nike

我像这样使用 setInterval :

game.clock.interval = window.setInterval( game.clock_update, game.clock.delay );

然后我调用一个函数来清除间隔:

game.clock_stop = function() {
clearInterval(game.clock.interval);
}

编辑:

真正的问题似乎是当我尝试调用再次启动间隔的方法时。当单击某个元素(在我的例子中是“i”标签)时,我让它使用上面的clearInterval函数;在同一时间,我打开一个 Colorbox...,我试图恢复调用 colorbox 的 onClosed 时的间隔。

$("#pause").on("click",function(){
game.pause();
game.clock_stop();
});

game.pause = function() {
$.colorbox({href:"pause.php", title:"The Game Is Paused"});
onClosed:function(){
game.clock_start();
}
};

最佳答案

编辑:基于您添加到问题中的新信息。

您的 game.pause() 方法的代码看起来错误。 onClosed: 定义似乎不属于任何对象,因此它可能根本没有附加到您的颜色盒。

我猜应该是这样的:

game.pause = function() {
$.colorbox({
href:"pause.php",
title:"The Game Is Paused",
onClosed:function(){
game.clock_start();
}
});
};
<小时/>

您只需像第一次一样再次调用 setInterval() 即可:

game.clock.interval = window.setInterval( game.clock_update, game.clock.delay );

这将根据您对 setInterval() 进行新调用的确切时间启动一个新的间隔计时器。

<小时/>

如果您要在多个地方执行此操作,那么就像您有一个 clock_top() 方法一样,您可能需要创建一个 clock_start() 方法:

game.clock_start = function() {
// if clock not already running, start it
if (!game.clock.interval) {
game.clock.interval = setInterval(game.clock_update, game.clock.delay);
}
}

game.clock_stop = function() {
clearInterval(game.clock.interval);
// clear saved timer so we know the clock is not running any more
game.clock.interval = null;
}

因此,任何时候您想启动它,都可以调用 game.clock_start()

关于javascript - 如何重新启动 setInterval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21816273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com