微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

自动隐藏和显示列表项

如何解决自动隐藏和显示列表项

我很难使它正常工作。我希望将鼠标悬停在“出租”上以显示属性”子菜单,然后允许我在子菜单项中向下单击以单击所需的子菜单。问题是,当我尝试将鼠标悬停在“属性链接上时,子菜单消失了。

以下是菜单图片

enter image description here

很明显,我搞砸了,但我想不通……任何帮助将不胜感激。

这里有HTML:

<ul class="menu" id="menu-menu">    
    <li id="ML_2" class="menu-item">
        <a class="button" href="#">
            <div class="title">Rentals</div>
            <div class="arrow">
                <i class="fa fa-chevron-up"></i>
            </div>
            <div class="icon">
                <div class="L_RENTALS"></div>
            </div>
        </a>
                                            
        <ul class="dropdown-menu" top: 130px; display: none;">
            <li class="menu-item" id="L_PROPERTIES" ><a href="#">Properties</a></li>
            <li class="menu-item" id="L_AVAILABILITY_CALENDAR"><a href="#">Availability Calendar</a></li>
        </ul>
    </li> 
<ul>    

CSS:

#menu-menu li ul {
    display: none;
}
#menu-menu li ul li a {
    display: block;
    background: none;
    padding: 10px 0px;
    padding-left: 15px;
    font-size: 11px;
    color: #424242;
    text-align: left;
    text-decoration: none;
    font-weight: bold;
}

#menu-menu li ul li a:hover {
    background: #dfdcdc;
}


a.button  div.icon div {background-position-x: 0px;
    border:0;
    background-position-y: 0px;
    background-size: 30px;
    background-position: 0;

    float: right;
    padding-right: 10px;
    width: 30px;
    height: 30px;

}

.menu-item div.title{width:100px;float:left;text-align:left;}
.menu-item div.arrow{width:20px;float:left;}
.menu-item div.icon{padding-left: 20px;}

JavaScript / jquery:

$("#menu-menu li").on("mouseenter",function (e) {
    
    //hide other submenus that may be open
    $(".dropdown-menu").hide();
    
    var elePos = $(this).position();
    $(this).find("ul").css({"top":elePos.top+79});
    $(this).find("ul").show();
});

解决方法

这是您要实现的目标吗?

$("#menu-menu > .menu-item").on("mouseenter",function(e) {

  //hide other submenus that may be open
  $(".dropdown-menu").hide();

  var elePos = $(this).position();
  $(this).find("ul").css({
    "top": elePos.top + 79
  });
  $(this).find(".dropdown-menu").show();
});

$("#menu-menu > .menu-item").on("mouseleave",function(e) {
  $(this).find(".dropdown-menu").hide();
});
#menu-menu li ul {
  display: none;
}

#menu-menu li ul li a {
  display: block;
  background: none;
  padding: 10px 0px;
  padding-left: 15px;
  font-size: 11px;
  color: #424242;
  text-align: left;
  text-decoration: none;
  font-weight: bold;
}

#menu-menu li ul li a:hover {
  background: #dfdcdc;
}

a.button div.icon div {
  background-position-x: 0px;
  border: 0;
  background-position-y: 0px;
  background-size: 30px;
  background-position: 0;
  float: right;
  padding-right: 10px;
  width: 30px;
  height: 30px;
}

.menu-item div.title {
  width: 100px;
  float: left;
  text-align: left;
}

.menu-item div.arrow {
  width: 20px;
  float: left;
}

.menu-item div.icon {
  padding-left: 20px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="menu" id="menu-menu">
  <li id="ML_2" class="menu-item">
    <a class="button" href="#">
      <div class="title">Rentals</div>
      <div class="arrow">
        <i class="fa fa-chevron-up"></i>
      </div>
      <div class="icon">
        <div class="L_RENTALS"></div>
      </div>
    </a>

    <ul class="dropdown-menu" style="top: 130px; display: none; ">
      <li class="menu-item " id="L_PROPERTIES "><a href="# ">Properties</a></li>
      <li class="menu-item " id="L_AVAILABILITY_CALENDAR "><a href="# ">Availability Calendar</a></li>
    </ul>
  </li>
</ul>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。