How to get jQuery to wait until an effect is finished?

jquery

Solution

You can specify a callback function:

$(selector).fadeOut('slow', function() {
    // will be called when the element finishes fading out
    // if selector matches multiple elements it will be called once for each
});

Documentation here.

Problem

I am sure I read about this the other day but I can't seem to find it anywhere. I have a `fadeOut()` event after which I remove the element, but jQuery is removing the element before it has the chance to finish fading out. How do I get jQuery to wait until the element had faded out, then remove it?

Original source