【发布时间】:2019-12-31 09:35:22
【问题描述】:
我有一个下拉菜单,里面有另一个下拉菜单,我添加了一些 Jquery 代码来打开/关闭悬停时的两个下拉菜单。
我将鼠标悬停在主下拉菜单 services 上,然后悬停在 service2 这是另一个下拉菜单上,当我尝试转到其中的元素 Service2 sub1、Service2 sub2 时,下拉菜单已关闭。
代码如下:
HTML:
<div class="navbar navbar-default navbar-static-top">
<div class="container">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" data-toggle="dropdown" class="dropdown-toggle">Services <b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Service1</a></li>
<li role="presentation">
<a data-toggle="collapse" href="#collapse" class="sub-menu">
Service2 <b class="caret"></b>
</a></li>
<ul>
<div id="collapse" class="panel-collapse collapse">
<li role="presentation"><a href="#">Service2 sub1</a></li>
<li role="presentation"><a href="#">Service2 sub2</a></li>
</div>
</ul>
</ul>
</li> <!-- .dropdown -->
</ul> <!-- .navbar-nav -->
</div> <!-- .container -->
</div> <!-- .navbar -->
jQuery:
$(document).ready(function() {
//Stop propagation for the dropdown
$(document).on('click', '.dropdown-menu', function (e) {
e.stopPropagation();
});
//On hovering over the main menu 'Services'
$(".dropdown").hover(
function() {
$('.dropdown-menu', this).stop().fadeIn("fast");
$(this).addClass('active');
},
function() {
$('.dropdown-menu', this).stop().fadeOut("fast");
$(this).removeClass('active');
}
);
//On hovering over the sub-menu `Services`
$(".sub-menu").hover(
function() {
$('#collapse').removeClass('collapse').addClass('collapse in');
},
function() {
$('#collapse').removeClass('collapse in').addClass('collapse');
}
);
});
她是一个活生生的小提琴来测试https://jsfiddle.net/0ksz9tnL/
【问题讨论】:
标签: jquery html css twitter-bootstrap twitter-bootstrap-3