jQuery延迟被忽略并执行兄弟姐妹

时间:2012-03-26 13:54:05

标签: jquery

我正在使用Google CDN的jQuery 1.7.1版,并提供以下代码:

$(menuInstance).delay(2000).removeClass('loading').html(ul);

然而,延迟被忽略,它会直接进入我的删除类并插入HTML。有什么想法延迟被忽略的想法?感谢

5 个答案:

答案 0 :(得分:4)

你不能那样使用.delay。您需要使用setTimeout

setTimeout(function() {
  $(menuInstance).removeClass('loading').html(ul);
}, 2000);

delay只能用于animation个队列。

答案 1 :(得分:3)

延迟仅适用于可以像动画一样排队的方法:http://api.jquery.com/delay/

您需要使用超时。我们可以使用http://api.jquery.com/queue/

答案 2 :(得分:3)

这不是.delay()所做的......

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

上的文档

<强>引用

  

说明:设置计时器以延迟执行队列中的后续项

  

.delay()方法最适合延迟排队的jQuery效果。因为它是有限的 - 例如,它没有提供取消延迟的方法 - .delay()不能替代JavaScript的本机setTimeout函数,这可能更适合某些用例。

正如您所看到的,它只适用于jQuery队列。

答案 3 :(得分:3)

http://jsbin.com/ohipew/edit#javascript,html

 $(menuInstance).delay(2000).queue(

  function (a)
  {
      $(this).removeClass('loading').html(ul)
  });

答案 4 :(得分:1)

.delay()用于延迟jquery视觉效果。 对于.remove(),您应该使用setTimeout

另见: jQuery: append() object, remove() it with delay()