选项卡菜单-jquery鼠标悬停/鼠标悬停问题

选项卡菜单-jquery鼠标悬停/鼠标悬停问题,jquery,Jquery,我使用的选项卡菜单类似于,但带有鼠标悬停而不是单击。目前,我必须使用“默认”关闭菜单 我怎样才能在所有下拉菜单都关闭的情况下开始 当用户将鼠标悬停在选项卡上时,菜单应展开,只有当用户将鼠标悬停在展开菜单外时,菜单才应关闭 使用的查询: $(document).ready(function(){ $(".menu > li").mouseover(function(e){ switch(e.target.id){ case "default": //change stat

我使用的选项卡菜单类似于,但带有鼠标悬停而不是单击。目前,我必须使用“默认”关闭菜单

  • 我怎样才能在所有下拉菜单都关闭的情况下开始
  • 当用户将鼠标悬停在选项卡上时,菜单应展开,只有当用户将鼠标悬停在展开菜单外时,菜单才应关闭
  • 使用的查询:

    $(document).ready(function(){
     $(".menu > li").mouseover(function(e){
      switch(e.target.id){
       case "default":
        //change status & style menu
        $("#default").addClass("active");
        $("#elec_gas").removeClass("active");
        $("#home_energy").removeClass("active");
        //display selected division, hide others
        $("div.default").css("display", "none");
        $("div.elec_gas").css("display", "none");
        $("div.home_energy").css("display", "none");
       break;
       case "elec_gas":
        //change status & style menu
        $("#default").removeClass("active");
        $("#elec_gas").addClass("active");
        $("#home_energy").removeClass("active");
        //display selected division, hide others
        $("div.default").css("display", "none");
        $("div.elec_gas").fadeIn();
        $("div.home_energy").css("display", "none");
       break;
       }
      //alert(e.target.id);
      return false;
     });
    });
    

    首先关闭它们,给子菜单一个CSS
    display:none或在脚本中执行,方法是将其添加到
    文档中。就绪
    处理程序:

    $("div.default, div.elec_gas, div.home_energy").hide();
    

    对于cild的悬停关闭它们…请使用事件而不是,如下所示:

    $(".menu > li").mouseleave(function(e){
    
    发件人:

    mouseleave
    事件处理事件冒泡的方式不同于
    mouseout
    。如果本例中使用了
    mouseout
    ,则当鼠标指针移出内部元素时,将触发处理程序。这通常是不受欢迎的行为。另一方面,
    mouseleave
    事件仅在鼠标离开其绑定到的元素而不是后代时触发其处理程序。因此在本例中,当鼠标离开外部元素而不是内部元素时,将触发处理程序


    @skanwal-如果答案解决了您的问题,请务必通过帮助解决问题旁边的复选标记接受答案:)