开发者

jquery sequence fadeOut and then remove

开发者 https://www.devze.com 2023-02-07 03:08 出处:网络
I try $(\'somediv\').fadeOut.remove();开发者_运维问答 but it only remove it, bang... it dont wait for the nice fadeOut, and THEN remove

I try $('somediv').fadeOut.remove();开发者_运维问答 but it only remove it, bang... it dont wait for the nice fadeOut, and THEN remove

why.. how to respect fadeout, and then remove..


Use a callback:

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

The code in the callback function you're passing to fadeOut()(docs) will not execute until the animation is complete.

Example: http://jsfiddle.net/p2LWE/

An alternative would be to queue()(docs) the remove()(docs) , but I think the callback is better.

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


Here is the simple way,

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

or

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


With jQuery chaining, one part of the chain doesn't wait for other parts to end if there's a time-based component. So when you want something to happen when another thing finishes, you'll need to use callbacks. In this case, you call fadeOut() with a parameter for what function to run when it's done. Like so:

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

So when fadeOut() is done (and you can add a leading parameter that dictates how long that'll take, either in miliseconds or 'fast', 'normal', or 'slow'), it'll call the function, which does the remove().

0

精彩评论

暂无评论...
验证码 换一张
取 消