使用 JavaScript 在特定延迟后执行脚本

2022-08-30 01:25:46

是否有任何类似于jQuery或(将脚本的执行延迟特定时间)的JavaScript方法?delay()wait()


答案 1

只是为了补充其他人所说的:如果你想在将来用参数调用一个函数,你需要设置一些匿名函数调用。setTimeout

您需要将该函数作为参数传递,以便稍后调用它。实际上,这意味着名称后面没有括号。以下命令将立即调用警报,并显示“Hello world”:

var a = "world";
setTimeout(alert("Hello " + a), 2000);

要解决此问题,您可以输入函数的名称(如Flubba所做的那样),也可以使用匿名函数。如果需要传递参数,则必须使用匿名函数。

var a = "world";
setTimeout(function(){alert("Hello " + a)}, 2000);
a = "Stack Overflow";

但是,如果您运行该代码,您会注意到2秒后弹出窗口将显示“Hello Stack Overflow”。这是因为变量 a 的值在这两秒内发生了变化。要让它在两秒钟后说“Hello world”,您需要使用以下代码片段:

function callback(a){
    return function(){
        alert("Hello " + a);
    }
}
var a = "world";
setTimeout(callback(a), 2000);
a = "Stack Overflow";

它将等待2秒钟,然后弹出“Hello world”。


答案 2

有以下几种:

setTimeout(function, milliseconds);

函数,可以在执行函数的时间之后传递。

请参见:Window setTimeout() 方法