jquery在删除之前不会等待动画完成,为什么?

时间:2012-07-16 15:56:57

标签: jquery

我正在做一些简单的事情,而不只是做:

$(this).next().remove();

我希望它有更多的光晕,并希望添加一个动画功能

$(this).next().slideUp().remove();

在删除项目之前,它会向上滑动以隐藏项目。在使用Chrome进行测试时,它几乎只是移除了项目,并没有完成我期待的平滑过渡。

没有删除的测试会正确使用slideUp()。

我有什么遗失的吗?

3 个答案:

答案 0 :(得分:7)

尝试 slideUp() 方法的回调功能。

$(this).next().slideUp(function() {
  // remove the element after 
  // animation finished
  $(this).remove();
});

答案 1 :(得分:4)

这是因为slideUp发生在后台。要等到它完成,请使用它的回调。

$(this).next().slideUp(function(){
    $(this).remove();
});

答案 2 :(得分:2)

动画调用是异步的,因为它启动但执行继续。实现你想要的东西的方法是回调可能是这样的:

 $(this).next().slideUp(function(){
     $(this).remove();
    });