jQuery - 使用.delay()推迟.load()?

AJB*_*AJB 3 jquery load delay

我刚刚遇到使用jQuery的.delay()方法(v 1.4.2)来尝试延迟以下.load()方法的问题.

像这样:

$('myElement').delay(500).load('myPage.php');
Run Code Online (Sandbox Code Playgroud)

它似乎只是忽略.delay().

我甚至想出了一个像这样的解决方法:

setTimeout(function(){
    $('myElement').load('myPage.php');
}, 500);
Run Code Online (Sandbox Code Playgroud)

但是,那不是那么优雅.其他人遇到这个并找到了更好的解决方案?

谢谢.

use*_*716 16

是的,delay()(docs)方法将被忽略,因为load()(docs)方法不会自动排队.

setTimeout可能是您最好的选择,但.delay()如果您load()使用queue()(docs)方法将调用添加到队列,您可以在技术上完成它.

$('myElement').delay(500).queue(function( nxt ) {
    $(this).load('myPage.php');
    nxt();
});
Run Code Online (Sandbox Code Playgroud)

该功能已添加到队列中.然后,您需要调用函数的参数以释放队列.有一种称为dequeue()(docs)方法的方法也可以实现这一点.

  • +1有趣的替代`setTimeout()`,在给定元素上提供动画尚未完成. (3认同)