将鼠标悬停在下拉菜单上时,JQuery 悬停下拉菜单消失
JQuery hover dropdown menu disappears when hovering on the dropdown menu
我正在做一些与我所看到的工作略有不同的事情,很多人都这样做了,所以下拉菜单是子列表的一部分。但是,我正在尝试使用同级下拉菜单。
这是我的小提琴:http://jsfiddle.net/58m99wf8/
您会注意到,如果您将鼠标悬停在按钮上,则会出现下拉菜单。如果你离开按钮,它会消失,这是完美的。但是,如果您将鼠标悬停在下拉菜单上,它仍然会消失,这不是我想要它做的。
我该如何防止这种情况?
我见过它的工作原理是这样的:
if($('#menuONE').has(e.target).length === 0) {
// toggle menu to close
}
但是,我不明白如何将其附加到子菜单和按钮。
您可以做的是将菜单添加到选择器中。我还定义了菜单,因为现在可以引用按钮或菜单,因此从那里遍历可能会有问题。
var menu = $('.dropdown-menu');
$('.dropdown-hover-toggle, .dropdown-menu').hover(
function () {
//show its sibling menu
menu.stop().slideDown();
},
function () {
//hide its sibling menu
menu.stop().slideUp();
});
http://jsfiddle.net/58m99wf8/1/
试试这个
var isSiblingHovered = false;
$('.dropdown-hover-toggle').hover(function () {
$(this).siblings('.dropdown-menu').slideDown();
},
function () {
var current = $(this);
setTimeout(function(){
if(!isSiblingHovered){
current.siblings('.dropdown-menu').stop().slideUp();
}
}, 50);
});
$('body').on("mouseleave", ".dropdown-menu", function() {
isSiblingHovered = false;
$('.dropdown-menu').stop().slideUp();
});
$('body').on("mouseenter", ".dropdown-menu", function() {
isSiblingHovered = true;
});
例
相关文章:
- 悬停下拉菜单即使在鼠标移出后也保持活动状态
- Javascript-悬停时的Bootstrap下拉菜单打开子菜单的所有菜单级别
- 悬停时展开垂直下拉菜单,而不是单击
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 移动设备上的CSS下拉菜单.如何四处走动:悬停
- Javascript在悬停状态下制作下拉菜单 - 没有HTML中的硬编码
- 悬停时打开的引导下拉菜单
- 使下拉菜单在悬停时显示,并显示超时
- jQuery - 单击包含
- 下拉菜单的嵌套文本字段悬停
- 分机 4 鼠标悬停、鼠标退出和下拉菜单的问题
- 为什么我将鼠标悬停在项目上时无法更改下拉菜单颜色
- 在悬停下拉菜单上 JavaScript
- 将鼠标悬停在下拉菜单上时,JQuery 悬停下拉菜单消失
- li:在移动设备上悬停下拉菜单
- 悬停下拉菜单:点击父链接转到父页面
- VBA单击悬停下拉菜单
- CWSpear的悬停下拉菜单已准备就绪(require.js)
- Jquery悬停下拉菜单关闭问题
- Bootstrap Navbar悬停下拉菜单(如果不是移动的)
- 悬停下拉菜单无法使用 jquery