Hey Seb, Welcome to the list. I'll look at your code but in the meantime, you should really check out Joern's accordian menu plugin:
http://bassistance.de/jquery-plugins/jquery-plugin-accordion/ It might speed things up for you. Rey Seb Duggan wrote: > I'm just starting up with jQuery, and have run into a problem with my > navigation menu. > > It's a vertical accordion menu, with each section opening when clicked, > and any other open sections close. Also, a section will close if it's > open and clicked. > > So, I have the following code attached to the <a> elements in the menu: > > > $('.topMenu').click(function(){ > $(this).next().addClass('active'); > $('ul.level1').filter(':visible').not('.active').slideUp('normal'); > $('.active').slideToggle('normal'); > $(this).next().removeClass('active'); > return false; > }); > > > The HTML looks like this: > > > <ul> > <li><a href="link.htm" class="topMenu">Section 1</a> > <ul class="level1"> > <li><a href="link.htm">Link 1</a></li> > <li><a href="link.htm">Link 2</a></li> > </ul> > </li> > > <li><a href="link.htm" class="topMenu">Section 2</a> > <ul class="level1"> > <li><a href="link.htm">Link 1</a></li> > <li><a href="link.htm">Link 2</a></li> > </ul> > </li> > > <li><a href="link.htm" class="topMenu">Section 3</a> > <ul class="level1"> > <li><a href="link.htm">Link 1</a></li> > <li><a href="link.htm">Link 2</a></li> > </ul> > </li> > > </ul> > > > > This flags the clicked link; closes all the sections at the same level > that are not the flagged link; toggles the clicked link; then removes > the flag; and finally returns false so the browser doesn't follow the link. > > My problem is that, as the code stands, the closing and opening take > place at the same time; I want the open sections to close, and then when > that's finished the clicked section should toggle. > > I initially thought the callback feature would handle this; but after > trying to work out why it didn't work, found that the rest of the script > continues. > > I also thought chaining might be the answer, but couldn't get it to work > as I wanted... > > How can I get the slideToggle to wait for the slideUp to complete? > > > Seb > > > ------------------------------------------------------------------------ > > _______________________________________________ > jQuery mailing list > [email protected] > http://jquery.com/discuss/ _______________________________________________ jQuery mailing list [email protected] http://jquery.com/discuss/
