常见问题。父菜单项和之间的空间.submenu
是罪魁祸首。
一个简单的解决方法是包装.submenu
一个div
足够宽以充当菜单项和子菜单之间的桥梁。
见这里 - http://jsfiddle.net/BuJav/15/
CSS 变化——
.submenu-wrapper {
position: absolute;
min-width: 160px;
min-height: 36px;
top: -4px;
left: 160px;
}
.submenu {
position: relative;
min-width: 160px;
min-height: 36px;
top: 0;
left: 10px;
background: url('../images/gradient_menuarea.png') repeat-x;
}
JS 更改 -
$(function(){
$('#menu > li, .submenu > li').hover(
function(){
var submenu = $(this).find('ul.submenu');
if (submenu.hasClass('submenu')){
submenu.removeClass('hide');
}
},
function(){
var submenu = $(this).find('ul.submenu');
if (submenu.hasClass('submenu')){
submenu.addClass('hide');
}
});
});
这样子菜单 ul 的目标就正确了。
请注意,您可以使用此 css 消除 JS
.submenu {display:none;}
#menu-area ul li:hover .submenu {display:block}
您也不需要.hide
在子菜单上上课
http://jsfiddle.net/BuJav/16/