2

我一直在谷歌搜索并试图让我的生命延迟 appendTo 立即发生,这样我就可以先做一个很好的淡出。这里,myObject 是一个链接:

<a href="#">My Link</a>

我想把它移到一个无序列表中:

<div id="newDiv">
<ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
</ul>
</div>

通过做这样的事情:

myObject.fadeOut(300).appendTo('#newDiv ul').fadeIn(300);
myObject.wrap('<li></li>');

我知道 appendTo 不是动画对象,所以它会立即发生。所以我尝试将附加作为一个回调到fadeOut:

myObject.fadeOut(300, myObject.appendTo('#newDiv')).fadeIn(300);
myObject.wrap('<li></li>');

只是现在它不仅立即发生,包装不再起作用。我也尝试过使用 setTimeout 来延迟追加无济于事。

4

1 回答 1

6

试试这个:

myObject.fadeOut(300, function() { $(this).appendTo('#newDiv ul').fadeIn(300) });

通过在淡入淡出的回调中执行“appendTo”,您可以等到淡入淡出完成。所有(据我所知)jQuery 动画效果都采用这样的回调。

于 2011-06-01T00:08:53.017 回答