Javascript jquery:如何阻止appendo立即发生?
我一直在谷歌上搜索,试图用我的一生来延迟appendTo的即时发生,这样我就可以先做一个很好的淡出。在这里,myObject是一个链接:Javascript jquery:如何阻止appendo立即发生?,javascript,jquery,jquery-animate,delay,appendto,Javascript,Jquery,Jquery Animate,Delay,Appendto,我一直在谷歌上搜索,试图用我的一生来延迟appendTo的即时发生,这样我就可以先做一个很好的淡出。在这里,myObject是一个链接: <a href="#">My Link</a> 我想把它放到一个无序的列表中: <div id="newDiv"> <ul> <li>Item 1</li> <li>Item 2</li> <li>Item 3</li
<a href="#">My Link</a>
我想把它放到一个无序的列表中:
<div id="newDiv">
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
</div>
- 项目1
- 项目2
- 项目3
通过这样做:
myObject.fadeOut(300).appendTo('#newDiv ul').fadeIn(300);
myObject.wrap('<li></li>');
myObject.fadeOut(300).appendTo('newDiv ul').fadeIn(300);
myObject.wrap(“”);
我知道appendTo不是动画对象,所以它只是瞬间发生。因此,我尝试将append作为fadeOut的回调:
myObject.fadeOut(300, myObject.appendTo('#newDiv')).fadeIn(300);
myObject.wrap('<li></li>');
myObject.fadeOut(300,myObject.appendTo('newDiv')).fadeIn(300);
myObject.wrap(“”);
只是现在,它不仅立即发生,包装不再工作。我还尝试使用setTimeout延迟追加,但没有效果。尝试以下方法:
myObject.fadeOut(300, function() { $(this).appendTo('#newDiv ul').fadeIn(300) });
通过在淡入淡出的回调中执行“appendTo”,您可以等待淡入淡出完成。所有的jQuery动画效果(据我所知)都会进行这样的回调。他的回调最初并不是真正的回调。回调的全部意义在于,它是一个在原始任务完成时将被调用的函数,但传递myObject.appendTo(“…”)会过早地调用appendTo并将其返回值作为回调参数传递。是的,奇怪的名称@OlduvaiHand是正确的。OP中的“回调”根本不是回调。