jquery序列fadeOut然后删除

时间:2011-01-26 23:23:08

标签: jquery

我尝试$('somediv').fadeOut.remove(); 但它只删除它,砰......它不等待好的fadeOut,然后删除

为什么..如何尊重fadeout,然后删除..

3 个答案:

答案 0 :(得分:38)

使用回调:

$('somediv').fadeOut( function() { $(this).remove(); });

传递给fadeOut()(docs)的回调函数中的代码在动画完成之前不会执行。

示例: http://jsfiddle.net/p2LWE/

替代方案是queue()(docs) remove()(docs),但我认为回调更好。

$('somediv').fadeOut()
            .queue(function(nxt) { 
                $(this).remove();
                nxt();
            });

答案 1 :(得分:9)

这是一个简单的方法,

$('#somediv').fadeOut(300,function(){ $(this).remove(); })};

$('#somediv').fadeOut("slow",function(){ $(this).remove(); })};

答案 2 :(得分:1)

使用jQuery链接,如果有基于时间的组件,链的一部分不会等待其他部分结束。因此,当您希望在另一件事完成时发生某些事情时,您将需要使用回调。在这种情况下,您可以使用参数调用fadeOut(),以便在完成后运行该函数。像这样:

$('#somediv').fadeOut(function(){ $(this).remove(); })};

所以当fadeOut()完成时(并且你可以添加一个前导参数来指示所需的时间,以毫秒或'快','正常'或'慢'),它会调用函数,它执行remove()