I think that what you need is a callback function. Something like this: $('#old_stuff').fadeOut('slow', function() { $('#new_stuff').fadeIn('slow'); });
Now #new_stuff appears only after #old_stuff faded out. I hope it's clear enough. -- Bohdan Ganicky On Dec 30, 4:38 am, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]> wrote: > Every time I try to do this, I am frustrated. It's the first thing I > tried to chain in jQuery. I try it again from time to time, because I > really want it to work. > > $("#messages").fadeIn("slow").html("<p>New message.<\/ > p>").fadeOut("slow"); > > What I want is for the old message to fade out, then the new message > gets put into the message area, then the new message fades in. > > It doesn't matter how I order the chaining, I can never get the effect > I want. > > First, what is the proper order to chain the effects? Am I supposed to > think right-to-left, or what? > > Second, shouldn't I be able to add a parameter to the effect that says > to block the next step in the chain until the current effect is done?