Reputation: 2125
I need to close a submenu and open a new one if some other submenu was clicked, it means I do not want more than one submenu opened at a time. However all of the submenus should be able to close.
Here is my jquery script:
<script>
$('.show_hide').hide();
$("li:has(ul)").click(function(){
$("ul",this).toggle('slow');
});
</script>
And html:
<ul id="left-menu" class="menu-v">
<li>
<a>Menu</a>
<ul class="menu-v show_hide">
<li>
<a >submenu </a>
</li>
<li>
<a >submenu 2</a>
</li>
</ul>
</li>
</ul>
Upvotes: 1
Views: 14691
Reputation: 19
<ul>
<li><a>0 Level menu<a></li>
<li><a>0 Level menu<a></li>
<li><a>0 Level menu<a></li>
<li class="parentMenu">
<ul>
<li class="alwaysShow"><a>0 Level menu<a><li>
<li class="hidden"><a>1 Level menu<a><li>
<li class="hidden"><a>1 Level menu<a><li>
<li class="hidden"><a>1 Level menu<a><li>
</ul>
</li>
</ul>
$(".parentMenu").hover(
function () {
$(this).find(".hidden").show("100");
},
function () {
$(this).find(".hidden").hide("100");
}
);
Upvotes: 1
Reputation: 1313
I don't know exactly what you're looking for, if you'd care to elaborate a little more I may be able to improve my answer.
Here's the jsfiddle example
HTML
<ul id="left-menu" class="menu-v">
<li>
<ul class="show_hide">
<li>
<a >submenu </a>
</li>
<li>
<a >submenu 2</a>
</li>
</ul>
</li>
<li>
<ul class="show_hide">
<li>
<a >submenu 4</a>
</li>
<li>
<a >submenu 5</a>
</li>
</ul>
</li>
</ul>
JQUERY
$(document).ready(function() {
$('.show_hide').hide();
$("li:has(ul)").click(function() {
$("ul", this).toggle('slow');
});
});
Upvotes: 2
Reputation: 16764
Maybe want like this ( I gave you example) -> http://jsfiddle.net/7qyE9/3/
html:
<ul>
<li class="main-menu">
<span>Test</span>
<ul class="submenu">
<li>Item1</li>
<li>Item2</li>
</ul>
</li>
<li class="main-menu">
<span>Abcde</span>
<ul class="submenu">
<li>Item3</li>
<li>Item4</li>
</ul>
</li>
</ul>
and javascript
$(document).ready(function(){
$(".main-menu .submenu").hide();
$(".main-menu span").click(function(){
$(".main-menu .submenu").hide('fast');
$(this).parent().find("ul").toggle('fast');
});
});
Upvotes: 4