Javascript 隐藏悬停问题的下拉菜单

Javascript 隐藏悬停问题的下拉菜单,javascript,html,css,Javascript,Html,Css,我可以看到,这个问题已经被问了一点,虽然我还没有找到解决我的具体问题的办法 我在一个菜单中有一个子菜单,它不能像预期的那样工作,它只需要在鼠标悬停时显示,然后当它没有悬停时,隐藏子菜单 现在我可以将鼠标悬停在菜单项上,但当我选择下一个选项时,它就消失了 我不知道我哪里出错了,我知道这是一个简单的功能,但它让我发疯!以下是我的工作: $(文档).ready(函数(){ $('.dropdown子菜单a.subshover')。打开(“鼠标悬停”,函数(e){ $(this.next('ul').

我可以看到,这个问题已经被问了一点,虽然我还没有找到解决我的具体问题的办法

我在一个菜单中有一个子菜单,它不能像预期的那样工作,它只需要在鼠标悬停时显示,然后当它没有悬停时,隐藏子菜单

现在我可以将鼠标悬停在菜单项上,但当我选择下一个选项时,它就消失了

我不知道我哪里出错了,我知道这是一个简单的功能,但它让我发疯!以下是我的工作:

$(文档).ready(函数(){
$('.dropdown子菜单a.subshover')。打开(“鼠标悬停”,函数(e){
$(this.next('ul').toggle();
e、 停止传播();
e、 预防默认值();
});
});
$(文档).ready(函数(){
$('.dropdown子菜单a.subshover')。打开(“mouseleave”,函数(e){
$(this.next('ul').toggle();
e、 停止传播();
e、 预防默认值();
});
});
。下拉子菜单{
位置:相对位置;
}
.下拉子菜单.下拉菜单{
排名:0;
左:100%;
页边顶部:-1px;
显示:隐藏;
}
.下拉子菜单:悬停.下拉菜单{
显示:块;
}


  • 这只能使用CSS来完成。请看一下我的解决方案:

    。下拉子菜单。下拉菜单{
    排名:0;
    左:100%;
    页边顶部:-1px;
    显示:无;
    }
    .subshover:悬停~.下拉菜单,.下拉菜单:悬停{
    显示:块;
    }

  • 这只能使用CSS来完成。请看一下我的解决方案:

    。下拉子菜单。下拉菜单{
    排名:0;
    左:100%;
    页边顶部:-1px;
    显示:无;
    }
    .subshover:悬停~.下拉菜单,.下拉菜单:悬停{
    显示:块;
    }

  • 它不起作用,因为您在
    鼠标悬停
    鼠标悬停
    上执行相同的代码行。以下代码不是必需的。评论和检查,如果这足以满足您的要求

    $(document).ready(function() {
      $('.dropdown-submenu a.subhover').on("mouseleave", function(e) {
        $(this).next('ul').toggle();
        e.stopPropagation();
        e.preventDefault();
      });
    });
    
    下面是正在运行的代码段:
    $(文档).ready(函数(){
    $('.dropdown子菜单a.subshover')。打开(“鼠标悬停”,函数(e){
    $(this.next('ul').toggle();
    e、 停止传播();
    e、 预防默认值();
    });
    });
    //$(文档).ready(函数(){
    //$('.dropdown子菜单a.subshover')。打开(“mouseleave”,函数(e){
    //$(this.next('ul').toggle();
    //e.停止传播();
    //e.预防违约();
    // });
    //});
    
    。下拉子菜单{
    位置:相对位置;
    }
    .下拉子菜单.下拉菜单{
    排名:0;
    左:100%;
    页边顶部:-1px;
    显示:隐藏;
    }
    .下拉子菜单:悬停.下拉菜单{
    显示:块;
    }
    
    

  • 它不起作用,因为您在
    鼠标悬停
    鼠标悬停
    上执行相同的代码行。以下代码不是必需的。评论和检查,如果这足以满足您的要求

    $(document).ready(function() {
      $('.dropdown-submenu a.subhover').on("mouseleave", function(e) {
        $(this).next('ul').toggle();
        e.stopPropagation();
        e.preventDefault();
      });
    });
    
    下面是正在运行的代码段:
    $(文档).ready(函数(){
    $('.dropdown子菜单a.subshover')。打开(“鼠标悬停”,函数(e){
    $(this.next('ul').toggle();
    e、 停止传播();
    e、 预防默认值();
    });
    });
    //$(文档).ready(函数(){
    //$('.dropdown子菜单a.subshover')。打开(“mouseleave”,函数(e){
    //$(this.next('ul').toggle();
    //e.停止传播();
    //e.预防违约();
    // });
    //});
    
    。下拉子菜单{
    位置:相对位置;
    }
    .下拉子菜单.下拉菜单{
    排名:0;
    左:100%;
    页边顶部:-1px;
    显示:隐藏;
    }
    .下拉子菜单:悬停.下拉菜单{
    显示:块;
    }
    
    

  • 如果您可以创建一个JSFIDLE或运行代码段,这将很有帮助,因为我们不知道您是否正在使用任何第三方库。如果您可以创建一个JSFIDLE或运行代码段,这将很有帮助,因为我们不知道你是否在使用任何第三方库。嘿,J.Sadi,谢谢你的快速回答-我知道这是如何在管理选项卡上工作的,尽管我需要在数据输入部分使用它,但不知为什么,我似乎无法理解它!有什么方法可以在数据输入部分显示该示例吗?嘿,我已经更新了数据输入部分的解决方案。我还添加了一个小提琴,两个下拉菜单一起工作。:)“没关系,只是我太傻了,”J·萨迪干杯!我认为这将是一个很好的合作。非常感谢:)再一次没问题,开始工作了哈哈-你帮了很多忙J.Sadi,再次感谢-祝你周末愉快!嘿,J.Sadi,谢谢你的快速回答-我知道这在管理选项卡上是如何工作的,尽管我在数据输入部分需要它,但我就是不能