Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 - Fatal编程技术网

Javascript 如何在点击按钮后进行睡眠

Javascript 如何在点击按钮后进行睡眠,javascript,Javascript,我想在按下按钮后设置一个延迟,以便按钮在执行下一行代码之前从缓存加载数据。睡觉是最好的方法吗 类似这样的问题,或者有没有其他方法可以最好地解决这个问题 setInterval(document.getElementById("generateButton"), 1000); 不要使用setInterval来执行此操作。它没有你想要的功能(它重复)。相反,使用jQuery并执行如下操作: $("#generateButton").click(function(event){ setTim

我想在按下按钮后设置一个延迟,以便按钮在执行下一行代码之前从缓存加载数据。睡觉是最好的方法吗

类似这样的问题,或者有没有其他方法可以最好地解决这个问题

setInterval(document.getElementById("generateButton"), 1000);

不要使用
setInterval
来执行此操作。它没有你想要的功能(它重复)。相反,使用jQuery并执行如下操作:

$("#generateButton").click(function(event){
    setTimeout(function(){
        //Do what the button normally does
    }, 1000);          
});
或者(不带JQuery):

在您的情况下,最好在
setInterval
上使用
setTimeout
,因为
setTimeout
只运行一次,而
setInterval
运行多次

我假设您在html中有按钮文本。删除
onclick='someFunction()
并将您的
someFunction()
放在我(在示例中)所说的“做按钮通常做的事情”的位置


您还可以在加载缓存的代码中添加一个方法,该方法在加载缓存后调用另一个方法(当从按钮调用
someFunction()
时,它加载缓存,在函数结束时(使用回调设置),一旦加载缓存,它调用另一个方法
onCacheLoaded()
加载缓存后即可运行。

不要使用
setInterval
来执行此操作。它没有您想要的功能(它会重复)。相反,请使用jQuery并执行以下操作:

$("#generateButton").click(function(event){
    setTimeout(function(){
        //Do what the button normally does
    }, 1000);          
});
或者(不带JQuery):

在您的情况下,最好在
setInterval
上使用
setTimeout
,因为
setTimeout
只运行一次,而
setInterval
运行多次

我假设您在html中有
按钮文本
。删除
onclick='someFunction()
,并将
someFunction()
放在我(在示例中)说过的“按按钮通常的操作”的位置

您还可以在加载缓存的代码中添加一个方法,该方法在加载缓存后调用另一个方法(当从按钮调用
someFunction()
时,它加载缓存,在函数结束时(使用回调设置),一旦加载缓存,它调用另一个方法
onCacheLoaded()
加载缓存后即可运行。

尝试:

注意
setInterval
定期运行函数,
setTimeout
只运行一次

还要注意,延迟的代码必须是一个函数(或一个将被
eval
评估的字符串,但最好避免)。但是,
document.getElementById(“generateButton”)
返回一个html元素(或
null
)。

请尝试:

注意
setInterval
定期运行函数,
setTimeout
只运行一次


还要注意,延迟的代码必须是一个函数(或一个将被
eval
评估的字符串,但最好避免这样做)。但是,
document.getElementById(“generateButton”)
返回一个html元素(或
null
).

您应该使用回调,以便从缓存加载数据时可以调用它并继续执行脚本的其余部分。
您不能使用interval,因为您无法确定加载数据需要多少时间。但是请记住javascript的异步性质,不要阻止脚本中不依赖于正在加载的数据的部分。

您应该使用回调,以便在从缓存加载数据时可以调用它并继续执行脚本的其余部分。
您不能使用interval,因为您无法确定加载数据需要多少时间。但是请记住javascript的异步性质,不要阻止脚本中不依赖于加载数据的部分。

请尝试window.setTimeout(document.getElementById(“generateButton”),1000);就像这样?
setInterval(…)
用于重复事件(延迟后)-您可能会想到
设置超时(…)
对于一次性内容可能重复的问题,请参阅此处:@user3767481 No,
document.getElementById(“generateButton”)
不是一个函数。我猜您希望对该元素执行某些操作,而不是仅获取它。请尝试window.setTimeout(document.getElementById(“generateButton”),1000);就像这样?
setInterval(…)
用于重复事件(延迟后)-您可能会想到
setTimeout(…)
关于一次性的可能重复的问题,请参阅此处:@user3767481 No,
document.getElementById(“generateButton”)
不是一个函数。我猜您希望对该元素做些什么,而不是只获取它。在delayed()中,我会以编程方式单击按钮,如:document.getElementById(“generateButton”).click();在delayed()中,我会以编程方式单击按钮,如下所示:document.getElementById(“generateButton”).click();没有Jquery的第二个示例会以编程方式为我单击按钮,例如document.getElementById(“generateButton”)。click();不,单击按钮时会发生这种情况。您应该将单击按钮时运行的代码放在显示
//执行按钮通常执行的操作
的区域中。您现在设置按钮的方式可能是
onclick='someFunction()'
。删除该代码并放置
someFunction()
其中
//执行按钮通常执行的操作
是什么。我只想澄清一下,此代码将自动为我按下按钮,然后设置一个延迟1秒,然后在该延迟后的“执行按钮通常执行的操作”“我想让我的其他代码在延迟后运行。代码不会自动为您按下按钮,它会设置在按下按钮时执行操作的代码(
$(“#generateButton”)。单击(函数(事件){//code to be execute on click});
generateButton.addEventListener(“c
myButton.addEventListener('click', function() {
    setTimeout(delayed, 1e3); // Delay code
}, false);
function delayed() {
    // Do whatever
}