2010-12-18 85 views

回答

6
$(obj).each(function() 
    setTimeout(function(){ 
     //do stuff 
    },2000); 
}); 
+1

这将安排所有的东西两秒后运行,所以代码将不会运行的一件事一次只会等待两秒钟,然后运行所有内容。为此,在循环内部设置'setTimeout'毫无意义,最好安排整个循环稍后运行。 – Guffa 2010-12-18 22:30:51

3

我假设你想要类似sleep的东西?您可以使用功能setTimeout在一段时间后调用某个功能。所以:

$(obj).each(function() 
    setTimeout(someFunction, 1000); 
}); 

到1000毫秒后调用someFunction,或安迪提到你可以定义要调用一个匿名函数。

+0

这将等待一秒钟,然后将所有函数调用重新运行回去。为此,在循环内部设置'setTimeout'毫无意义,最好安排整个循环稍后运行。 – Guffa 2010-12-18 22:32:32

+0

目前还不清楚他想要什么,我的印象是他只是想等一下'x'秒,然后做点什么... – brad 2010-12-18 22:34:13

2

您不会冻结脚本,在浏览器等环境中运行不正常,您可以使用超时来计划稍后启动的代码。

在循环中调度代码的技巧是计划代码在将来的不同时间运行,例如,第一码后1000毫秒运行,第二个代码后2000毫秒运行,等等:。

$(obj).each(function(i) { 
    window.setTimeout(function(){ 
    // do something 
    }, (i + 1) * 1000); 
}); 
+0

Guffa,请给出一些关于这个问题的反馈 - http://stackoverflow.com/questions/4480490 /删除延迟上隐藏 – James 2010-12-18 22:59:41