Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当条件为真时停止并恢复Javascript执行_Javascript_Jquery - Fatal编程技术网

当条件为真时停止并恢复Javascript执行

当条件为真时停止并恢复Javascript执行,javascript,jquery,Javascript,Jquery,首先,我写这个问题是因为其他答案对我没有帮助 我有一个运行setTimeOut功能的页面,当用户单击某个div时,会显示一个输入,因此我需要setTimeOut停止,直到他输入一些文本并按ok,然后setTimeOut可以继续执行。 任何帮助都将非常有用:)使用clearTimeout 返回一个id,可用于稍后取消超时操作 作为MDN的直接副本,它应该是这样的 var myVar; function myFunction() { myVar = setTimeout(function(

首先,我写这个问题是因为其他答案对我没有帮助

我有一个运行setTimeOut功能的页面,当用户单击某个div时,会显示一个输入,因此我需要setTimeOut停止,直到他输入一些文本并按ok,然后setTimeOut可以继续执行。


任何帮助都将非常有用:)

使用
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的函数会是什么呢?这将回答这个问题没有简历——我更新了答案,以说明你将如何做到这一点。