当条件为真时停止并恢复Javascript执行
首先,我写这个问题是因为其他答案对我没有帮助 我有一个运行setTimeOut功能的页面,当用户单击某个div时,会显示一个输入,因此我需要setTimeOut停止,直到他输入一些文本并按ok,然后setTimeOut可以继续执行。当条件为真时停止并恢复Javascript执行,javascript,jquery,Javascript,Jquery,首先,我写这个问题是因为其他答案对我没有帮助 我有一个运行setTimeOut功能的页面,当用户单击某个div时,会显示一个输入,因此我需要setTimeOut停止,直到他输入一些文本并按ok,然后setTimeOut可以继续执行。 任何帮助都将非常有用:)使用clearTimeout 返回一个id,可用于稍后取消超时操作 作为MDN的直接副本,它应该是这样的 var myVar; function myFunction() { myVar = setTimeout(function(
任何帮助都将非常有用:)使用
clearTimeout
返回一个id,可用于稍后取消超时操作
作为MDN的直接副本,它应该是这样的
var myVar;
function myFunction() {
myVar = setTimeout(function(){ alert("Hello") }, 3000);
}
function myStopFunction() {
clearTimeout(myVar);
}
如果需要暂停而不是停止超时,则需要自己计算剩余时间,然后在清除第一个超时后,使用新的
setTimeout
启动一个新的超时setTimeout只需将操作安排在将来的某个特定时间
如果您只需要取消超时时发生的下一件事,那么可以使用函数window.setTimeout返回的句柄调用window.clearInterval,然后在将来的某个时间点再次安排它
如果您出于某种原因不想使用前面的方法,例如,因为您不想重新安排时间间隔,那么您可以在闭包中创建一个标志来指示是否应该运行该函数
var shouldHappen = true;
window.setTimeout(function(){
if(shouldHappen){
// Do some stuff.
}
}, 1000)
因此,可以从以下内容开始超时:
var to=setTimeout(…)代码>。您可以使用clearTimeout(to)停止它代码>。您可以再次调用setTimeout(…)
重新启动它。然而,这是一个极端的简化,我认为你需要更多的控制。你能提供一些背景资料吗,比如。如果没有进一步的细节,这个问题可能会被关闭。你能发布答案吗?因为我需要setTimeout暂停,然后在暂停时恢复。那么停止setTimeout的函数和恢复setTimeout的函数会是什么呢?这将回答这个问题没有简历——我更新了答案,以说明你将如何做到这一点。