在我的頁面上我有一個導航欄。在我的導航欄中,我有3個關卡。第一層是主菜單,然後你得到第二層,然後是第三層。我的問題是,當我將鼠標懸停在顯示第二級和第三級的菜單項上時,我只希望第二級顯示,除非我將鼠標懸停在具有第三級的第二級上。讓第二層保持閉合
這裏是我的菜單
<div class="col-lg-12 col-md-12 col-sm-12 col-xs-12">
<nav class="navbar navbar-default main_menu">
<div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
<div class="navbar-header">
<div id="mainMenu" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="parent">
Home
<ul class="father"> </ul>
</li>
<li class="parent">
About Layer 1
<ul class="father">
<li class="parent_child">
About Layer 2
<ul class="son" style="display: none;">
<li class="child"> About Layer 3 part 2 </li>
<li class="child"> About Layer 3 Part 3 </li>
<li class="child"> About Layer 3 Part 4 </li>
</ul>
</li>
<li class="parent_child">
About Layer 2 part 2
<ul class="son">
<li class="child"> About Layer 3 </li>
</ul>
</li>
</ul>
</li>
<li class="parent">
Test
<ul class="father">
<li class="parent_child">
test 2
<ul class="son" style="display: none;">
<li class="child"> test 3 </li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
</div>
我的JS
$(document).ready(function() {
$(".nav a").click(function(){
//event.preventDefault();
$(".nav a").removeClass("active-menu");
$(this).addClass("active-menu");
});
$('ul.navbar-nav li').hover(
function() {
$(this).find('.father:first').css('display','block');
},
function() {
$(this).find('.father:first').css('display','none');
}
);
$('ul.navbar-nav li').hover(
function() {
$(this).find('.son:first').css('display','block');
},
function() {
$(this).find('.son:first').css('display','none');
}
);
});
我的CSS
.father{
display: none;
}
.son{
display: none;
}
的的jsfiddle:JSFIDDLE
也許用'.hover改變選擇()從'ul.navbar-NAV li''方法來'UL .navbar-nav> li'或類似'ul> li'是一個有用的提示。 – Xufox 2015-03-08 20:51:43