jQuery的delay()是否与replaceWith()一起使用?

时间:2014-05-28 10:03:28

标签: jquery

这个jQuery有什么问题吗?延迟似乎不起作用。

 $( "#checked_value" ).replaceWith( "<div id='checked_value_loading'></div>").slideUp( 300 ).delay( 8000 ).fadeIn( 400 );

当我在代码行之前添加alert("test");时,我可以看到它更改为<div id='checked_value_loading'></div>,但没有提醒,就没有延迟......

1 个答案:

答案 0 :(得分:2)

问题是replaceWith()返回原始元素集,而不是新元素,因此您将效果应用于不再属于DOM的元素。

一个简单的解决方案是颠倒你的逻辑并改为使用replaceAll()

$("<div id='checked_value_loading'></div>")
    .replaceAll("#checked_value")
    .slideUp(300).delay(8000).fadeIn(400);