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 t
Here is the simple way,
$('#somediv').fadeOut(300,function(){ $(this).remove(); })};
or
$('#somediv').fadeOut("slow",function(){ $(this).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();
});
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()
.