Animate it to zero and then remove the callback
demo: http://jsfiddle.net/qJFnc/2/
jQuery('.destroy').click(function(){ jQuery(this).animate({height : 0}, function() { $(this).remove(); }) })
------------------ Edit:
To use the fade effect without CSS height, you need to use fadeTo () since it does not remove an element like fadeOut. Then, when you call back this slide, the element is up.
Demo: http://jsfiddle.net/qJFnc/10/
Updated Source:
jQuery('.destroy').click(function(){ jQuery(this).fadeTo(500,0, function() { $(this).slideUp(); }) })
source share