在jQuery的wait()或sleep()函数?

我想添加一个类,等待2秒钟,并添加另一个类。

.addClass("load").wait(2sec).addClass("done"); 

有什么办法吗?

setTimeout会在延迟一段时间(以毫秒为单位)后执行一些代码。 然而,一个重要的注意事项:由于JavaScript的性质,其余的代码在计时器设置后继续运行:

 $('#someid').addClass("load"); setTimeout(function(){ $('#someid').addClass("done"); }, 2000); // Any code here will execute immediately after the 'load' class is added to the element. 

那就是.delay()

http://api.jquery.com/delay/

如果你正在做AJAX的东西,你真的不应该只是自动写“完成”,你应该等待一个响应,看看它是否真的完成。

意识到这是一个老问题,但我写了一个插件来解决这个问题,有人可能会觉得有用。

https://github.com/madbook/jquery.wait

让你这样做:

 $('#myElement').addClass('load').wait(2000).addClass('done'); 

delay()不会完成这项工作。 delay()的问题是它是animation系统的一部分,只适用于animation队列。

如果你想在执行animation之外的东西之前呢?

用这个:

 window.setTimeout(function(){ // do whatever you want to do }, 600); 

会发生什么情况?在这种情况下,它会在执行花括号内指定的代码之前等待600毫秒。

一旦我明白了这一点,这对我有很大的帮助,并希望它能帮助你!

有一个function,但它是额外的: http : //docs.jquery.com/Cookbook/wait

这个小片段可以让你等待:

 $.fn.wait = function(time, type) { time = time || 1000; type = type || "fx"; return this.queue(type, function() { var self = this; setTimeout(function() { $(self).dequeue(); }, time); }); }; 

使用setTimeout函数,例如在这里访问