Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jquery:如何阻止appendo立即发生?_Javascript_Jquery_Jquery Animate_Delay_Appendto - Fatal编程技术网

Javascript jquery:如何阻止appendo立即发生?

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

我一直在谷歌上搜索,试图用我的一生来延迟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>

  • 项目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中的“回调”根本不是回调。