They are all sliding up at the same time, but I was under the impression
that your code would call the callback function once for each div.panel that
was found. Am I mistaken?
(would be really awesome if it does only call once)

And if I'm not, I reiterate that I only want the callback function called
once, and it needs to be called after all of the panels have finished
animation.

The reason for this is that I am doing a ajax PUT form submission that
updates a Members account and then returns the updated DOM section. Then I
replace the old DOM section with the new piece after all of the open panels
(which display the content which is about to be replaced) are closed.

Cheers.



On Fri, Jan 2, 2009 at 2:43 PM, Ricardo Tomasi <ricardob...@gmail.com>wrote:

>
> If they are all sliding up at the same time, isn't it simpler to use
>
> function closeMainPanels(){
>    jQuery("div.mainLiner div.panel").slideUp(750, function(){ /
> *...callback...*/ });
> }
>
> On Jan 1, 5:53 pm, "Cam Spiers" <camspi...@gmail.com> wrote:
> > function closeMainPanels(callback){
> >     var panels = jQuery('div.mainLiner div.panel');
> >     var done = [];
> >     var length = panels.length;
> >     panels.each(function(){
> >         var panel = jQuery(this);
> >         panel.slideUp(750, function(){
> >             if (done.push(panel) == length){
> >                 callback();
> >             }
> >         });
> >     });
> >
> > }
> >
> > This is what I ended up using thanks brian. :)
> >
> > Cheers,
> > Cam
> >
> > On Thu, Jan 1, 2009 at 5:26 PM, Cam Spiers <camspi...@gmail.com> wrote:
> > > Hey,
> >
> > > function closeMainPanels(){
> > >     jQuery("div.mainLiner div.panel").each(function(){
> > >         jQuery(this).slideUp(750);
> > >     });
> > > }
> >
> > > How can I tell when all panels have finished animation?
> >
> > > As I need to call another function when all have finished.
> >
> > > Cheers,
> > > Cam
>

Reply via email to