悬停第二个菜单后,第一个下拉菜单没有关闭
First dropdown menu not closing after hovering second menu
我得到一些问题时,打开菜单u1下拉菜单后直接鼠标在菜单上打开它而不关闭菜单u1。如果我打开菜单并将光标从导航中移出以关闭下拉菜单,然后将鼠标移到菜单上,它就可以正常工作。如果我直接从menu1到menu2或者相反,menu2下拉菜单出现在menu1下拉菜单下面。我认为我有一个错误在我的html或它可以用jquery函数修复,但我不知道如何解决这个问题。我希望添加更多的菜单,在实际上只有两个。希望你能理解我的问题,如有任何帮助,不胜感激
$(document).ready(function () {
var menu = $('.menu')
menu.hide();
$("#mainbutton").mouseenter(function(){
$(".menu").stop().slideDown("fast");
});
$("#nav").mouseleave(function(){
$(".menu").stop().slideUp("fast");
});
var menu2 = $('.menu2')
menu2.hide();
$("#secondboutton").mouseenter(function(){
$(".menu2").stop().slideDown("fast");
});
$("#nav").mouseleave(function(){
$(".menu2").stop().slideUp("fast");
});
});
这里JSFiddle
我建议为所有菜单.menu
添加一个通用的类名,并为每个单独的菜单(#menu1
或.menu1
)添加一个特定的选择器,以及为活动状态.active
添加一个指示器。这样你就可以简单地关闭所有的.menu.active
看到下面的小提琴作为一个简单的概念证明:https://jsfiddle.net/ad3a5qyw/2/
编辑:我已经抽象了小提琴,所以您可以将data-menu
属性添加到nav-items
,以指示相关的菜单。
我知道是怎么回事了:
使用jQuery和您已经编写的代码很容易,这里有一个带有新菜单项的示例来展示它是多么容易:https://jsfiddle.net/xyqoj24m/2/
发生的事情是,mouseleave
函数只有在鼠标离开整个 #nav
元素时才运行。所以需要做的是像这样处理菜单的隐藏/显示:
- 当鼠标停留在菜单项上时,关闭所有其他下拉菜单并显示正确的下拉菜单。
- 当鼠标离开下拉菜单或菜单项时,关闭下拉菜单。
看一下这个Javascript,看看这是什么意思:
$("#mainbutton").mouseenter(function(){
$(".menu").stop().slideDown("fast");
$(".menu2").stop().slideUp("fast");
$(".menu3").stop().slideUp("fast");
});
$("#secondbutton").mouseenter(function(){
$(".menu2").stop().slideDown("fast");
$(".menu").stop().slideUp("fast");
$(".menu3").stop().slideUp("fast");
});
// leave the first menu dropdown
$("#mainbutton, .menu").mouseleave(function() {
$(".menu").stop().slideUp("fast");
});
// leave the second menu dropdown
$("#secondbutton, .menu2").mouseleave(function() {
$(".menu2").stop().slideUp("fast");
});
请随意提问!
相关文章:
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 在javascript中动态添加一个选择下拉菜单
- Asp.net 引导下拉菜单 - 选择一个项目
- 下一个下拉菜单不能具有已在另一个下拉菜单中使用的值
- Bootstrap下拉菜单中的复选框允许多个复选框而不是一个
- 如何创建根据另一个下拉菜单中的答案显示的下拉菜单
- 如何使用引导程序显示另一个导航栏而不是下拉菜单
- Jquery下拉菜单位于幻灯片上方的一个显示位置
- 当上一个下拉菜单选择了某些内容时,javascript显示下拉菜单
- 如何更改<h: 选择一个菜单>在JSF中选择一个条目的下拉菜单
- 是否可以在HTML选择下拉菜单的每个选项上附加一个qtip2工具提示
- 创建一个CSS下拉菜单,其中包含从搜索图标弹出的搜索框
- 我需要一个简单的javascript下拉菜单OnChange/Select
- 使用jquery/javascript在aspx页面中填充一个客户端下拉菜单和一个服务器端下拉菜单
- 将整个下拉菜单从一个站点复制到另一个站点
- 引导3:下拉菜单在一个固定的顶部栏导航条逆不是下拉
- 单击下拉菜单创建一个弹出窗口(下拉菜单中没有选择)
- 从php中的下拉菜单创建一个项目列表
- 通过下拉菜单选择一个选项