在我的网站中,我可以创建1级子菜单,但它正在运行。但是2级子菜单不起作用。请帮忙。
这是我的Html代码
<ul id="nav">
<li><a href="#">Home</a></li>
<li><a href="#"> Menu2 <img alt="" src="Images/warning.png" style=" border:0px;" /></a>
<ul id="subnav">
<li><a href="#">SubMenu1</a></li>
<ul>
<li><a href="#">Sub1Sub2menu1</a></li>
<li><a href="#">Sub1Sub2menu2</a></li>
<li><a href="#">Sub1Sub2menu3</a></li>
</ul>
<li><a href="#">SubMenu2</a></li>
<li><a href="#">SubMenu3</a></li>
<li><a href="#">SubMenu4</a></li>
<li><a href="#">SubMenu5</a></li>
<li><a href="#">SubMenu6</a></li>
<li><a href="#">SubMenu7</a></li>
</ul>
</li>
<li><a href="#">Menu3 <img alt="" src="Images/warning.png" style=" border:0px;" /></a>
<ul>
<li><a href="#">Sub1Menu1</a></li>
<li><a href="#">Sub1Menu2</a></li>
</ul>
</li>
<li><a href="#">Menu4</a></li>
<li><a href="#">Menu5</a></li>
</ul>
这是我的CSS:
#nav
{
margin:0; padding:0; list-style:none; width:640px; height:37px;
}
#nav li
{
float:right; display:block; width:124px; position:relative; z-index:500; text-decoration:none;
}
#nav li a
{
display:block; height:37px; line-height:37px; text-decoration:none; color:#fff; text-align:center; color:#000;
}
#nav li a:hover
{
color:Green;
}
#nav a.selected
{
color:#000;
}
#nav ul
{
position:absolute; right:0; display:none; padding:0; list-style:none; background-color:#c5c9cc; border: solid 1px #c5c9cc;
-moz-border-radius: 0 0 10px 10px; border-radius: 0 0 10px 10px;
}
#nav ul li
{
width:124px; float:right;
}
#nav ul ul
{
width:124px; float:right; margin:0px 124px 0px 0px; display:block; border-radius: 10px 0 0 10px;
}
#nav ul a
{
display:block; height:30px; color:#000; line-height:30px; text-decoration:none;
}
#nav li ul ul {
margin:0px 124px 0 10px;
}
#nav ul a:hover
{
text-decoration:none;
}
*html #nav ul
{
margin:0 0 0 -2px;
}
这是我的jQuery代码:
<script type="text/javascript">
$(document).ready(function () {
$('#nav li').hover(
function () {
//show its submenu
$('ul', this).slideDown(200);
$('#subnav ul', this).css({ visibility: "hidden" });
},
function () {
//hide its submenu
$('ul', this).slideUp(200);
}
);
$('#subnav').hover(
function () {
//show its submenu
$('#subnav ul', this).css({ visibility: "visible" });
$('#subnav ul', this).slideDown(200);
},
function () {
//hide its submenu
$('#subnav ul', this).slideUp(200);
}
);
});
</script>
答案 0 :(得分:1)
好像你的第二级没有嵌套在第一级。它应该在第一级<li></li>
<li><a href="#">SubMenu1</a>
<ul>
<li><a href="#">Sub1Sub2menu1</a></li>
<li><a href="#">Sub1Sub2menu2</a></li>
<li><a href="#">Sub1Sub2menu3</a></li>
</ul>
</li>
答案 1 :(得分:0)
试试这个HTML代码
<ul>
<li style="display: inline !important;"><a href="#">Home</a></li>
<li class="parent"><a href="#">Menu 1</a>
<ul class="child">
<li class="parent"><a href="#">Menu 1 child 1</a>
<ul class="child">
<li class="parent"><a href="#">sub child 1</a>
<ul class="child">
<li>sub child 1</li>
<li>sub child 1</li>
<li>sub child 1</li>
</ul>
</li>
<li>sub child 1</li>
<li>sub child 1</li>
</ul>
</li>
<li class="parent">Menu 1 child 2
<ul class="child">
<li>sub child 1</li>
<li>sub child 1</li>
<li>sub child 1</li>
</ul>
</li>
<li>Menu 1 child 3</li>
<li>Menu 1 child 4</li>
</ul>
</li>
<li><a href="#">Menu 2</a></li>
使用此HTML代码。您注意到<ul><li>
是嵌套的。
复制jQuery代码。
jQuery(document).ready(function($){
$( '.parent' ).hover( function(){
$(this).find('ul.child').show();
$(this).find('ul.child').find('ul.child').hide();
}, function(){
$(this).find('.child').hide();
});
});
很抱歉,如果我添加css代码,我无法提交此评论。只需访问该网站了解更多信息..希望这会有所帮助。 http://nextopics.com/jquery-multi-level-menu/或参阅演示http://nextopics.com/others/dropdown-menu/