I have written a simple accordion menu with jquery myself for the following html structure:
<ul class="menu">
<li><a href="#">menu1</a></li>
<li class="expanded">
<a href="#">menu2</a>
<ul class="menu">
<li><a href="#">menu 2.1</a></li>
<li><a href="#">menu 2.2</a></li>
<li><a href="#">menu 2.3</a></li>
</ul>
</li>
<li><a href="#">menu3</a></li>
<li class="expanded">
<a href="#">menu4</a>
<ul class="menu">
<li><a href="#">menu 4.1</a></li>
<li><a href="#">menu 4.2</a></li>
</ul>
</li>
<li class="expanded">
<a href="#">menu5</a>
<ul class="menu">
<li><a href="#">menu 5.1</a></li>
<li><a href="#">menu 5.2</a></li>
</ul>
</li>
</ul>
jquery:
$(function(){
$('li.expanded > ul').hide();
$('li.expanded > a').click(function(){
$(this).next().slideToggle();
});
});
Now, when I click on the menu2, it opens as expected, when I click the next menu4, I wish the menu2 and the rest of all the opened menu will automatically close it back or collapse. I wonder how to achieve it.