javascript - jquery:我怎样才能阻止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>
</ul>
</div>

通过做这样的事情:

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

我知道appendTo不是一个动画对象,所以它只是立即发生。所以我尝试将追加作为淡出的回调:

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

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

最佳答案

试试这个:

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

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

关于javascript - jquery:我怎样才能阻止appendTo立即发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6194910/

相关文章:

Jquery动画背景

javascript - 在 jQuery 嵌套插件中使用百分比

javascript - 响应式导航栏未显示(汉堡菜单)

javascript - 获取 props in action -> reducer -> 自定义函数

javascript - 使用 Javascript 将连续的元素组合在一起

jquery - 如何在jquery中添加新元素?

javascript - 访问大层次结构中的深化元素

javascript - 使用 AJAX 的 JQuery 自动完成

jQuery 动画 CSS,设置悬停状态

javascript - 如何在 jQuery animate 中使用队列?