Monday, May 20, 2024
 Popular · Latest · Hot · Upcoming
28
rated 0 times [  35] [ 7]  / answers: 1 / hits: 19149  / 12 Years ago, fri, may 18, 2012, 12:00:00

I want to design a multilevel menu using jQuery.
I have already written some code .You can see the demo here .
All this works fine. But I want to make multilevel drop down menus dynamically.



Script



$('ul#menu > li').hover(function(){
//$('#drop' , this).css('display','block');
$('.drop' , this).delay(20).slideDown(200);
}, function(){
$('.drop' , this).delay(20).slideUp(200);
});​


HTML



<ul id=menu>
<li><a href=#>Home</a>
<ul class=drop>
<li><a href=#>About us</a></li>
<li><a href=#>About us</a></li>
<li><a href=#>About us</a></li>
<li><a href=#>About us</a></li>
</ul>
</li>


<li><a href=#>about</a>
<ul class=drop>
<li><a href=#>Home</a></li>
<li><a href=#>Home</a></li>
<li><a href=#>Home</a></li>
<li><a href=#>Home</a></li>
</ul>
</li>

</ul>​


CSS



ul#menu
{
margin:0;
padding:0;
}
ul#menu > li
{
list-style:none;
float:left;
margin:0;
padding:0;
position:relative;
}
ul#menu a
{
text-decoration:none;
color:#fff;
background:red;
display:block;
padding:10px;
}
ul#menu > li ul.drop
{
margin:0;
padding:0;
width:150px;
position:absolute;
display:none;
}
ul#menu > li ul.drop ul
{
margin:0;
padding:0;
width:150px;
position:absolute;
display:none;
left:150px;
top:0;
}
ul#menu > li ul li
{
margin:0;
padding:0;
list-style:none;
position:relative;
}​

More From » jquery

 Answers
71

You need to change the jQuery script a little to accommodate for the multilevel menus like this:



$('ul#menu li').hover(function(){
$(this).children('ul').delay(20).slideDown(200);
}, function(){
$(this).children('ul').delay(20).slideUp(200);
});


and change html like this:



<ul id=menu>
<li><a href=#>Home</a>
<ul class=drop>
<li><a href=#>About us</a></li>
<li><a href=#>About us</a></li>
<li><a href=#>About us</a></li>
<li>
<a href=#>About us</a>
<ul>
<li><a href=#>Sub Item 1</a></li>
<li>
<a href=#>Sub Item 2</a>
<ul>
<li><a href=#>Sub item 3</a></li>
<li><a href=#>Sub item 4</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>


<li><a href=#>about</a>
<ul class=drop>
<li><a href=#>Home</a></li>
<li><a href=#>Home</a></li>
<li><a href=#>Home</a></li>
<li><a href=#>Home</a></li>
</ul>
</li>
</ul>


Your css is fine.
You can check the updated multilevel code at: http://jsfiddle.net/297t6/


[#85507] Wednesday, May 16, 2012, 12 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
josefn

Total Points: 251
Total Questions: 93
Total Answers: 84

Location: Senegal
Member since Fri, Aug 21, 2020
4 Years ago
;