首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用JavaScript在特定延迟后执行脚本

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

Stack Overflow用户
提问于 2008-08-24 05:10:57
回答 15查看 470.4K关注 0票数 198

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

EN

回答 15

Stack Overflow用户

回答已采纳

发布于 2008-08-24 05:18:18

有以下几点:

代码语言:javascript
复制
setTimeout(function, milliseconds);

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

请参阅:Window setTimeout() Method

票数 193
EN

Stack Overflow用户

发布于 2008-08-24 10:01:17

只是补充一下其他人对setTimeout的看法:如果你想在将来调用一个带参数的函数,你需要设置一些匿名函数调用。

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

代码语言:javascript
复制
var a = "world";
setTimeout(alert("Hello " + a), 2000);

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

代码语言:javascript
复制
var a = "world";
setTimeout(function(){alert("Hello " + a)}, 2000);
a = "Stack Overflow";

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

代码语言:javascript
复制
function callback(a){
    return function(){
        alert("Hello " + a);
    }
}
var a = "world";
setTimeout(callback(a), 2000);
a = "Stack Overflow";

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

票数 244
EN

Stack Overflow用户

发布于 2008-08-24 08:53:15

只是稍微扩展一下...您可以直接在setTimeout调用中执行代码,但正如@patrick所说,您通常会分配一个回调函数,如下所示。时间是毫秒

代码语言:javascript
复制
setTimeout(func, 4000);
function func() {
    alert('Do stuff here');
}
票数 39
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档