简体   繁体   English

在div外部单击时隐藏子菜单

[英]Hide submenu when clicking outside the div

I created a side bar with submenu my problem is I want to hide the submenu when the user clicks outside the submenu container (the activities part). 我用子菜单创建了一个侧栏,我的问题是当用户在子菜单容器(活动部分)之外单击时,我想隐藏子菜单。 I tried the solution in here but I cant get it to work. 我在这里尝试了解决方案,但无法正常工作。 What can I do to make this work? 我该怎么做才能使这项工作? What am I doing wrong? 我究竟做错了什么? My sample code and screenshot is below. 我的示例代码和屏幕截图如下。

在此处输入图片说明

  $(document).click(function(e){ var myTarget = $(".scrollbar-container"); var clicked = e.target.className; if($.trim(myTarget) != '') { if($("." + myTarget) != clicked) { $("#app-container").removeClass("sub-show-temporary"); } } }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="sidebar"> <div class="main-menu"> <div class="scroll"> <div class="scrollbar-container"> <ul class="list-unstyled nav flex-column"> <li class="active nav-item" id="dashboard-nav"> <a id="dashboard-page"> <i class="fa fa-tachometer"></i> <span>Dashboard</span> </a> </li> <li class="nav-item" id="activity-nav"> <a id="activity-menu"> <i class="fa fa-tasks"></i> <span>Activity</span> </a> </li> <li class="nav-item" id="retailer-nav"> <a id="retailer-menu"> <i class="fa fa-users"></i> <span>Retailer</span> </a> </li> <li class="nav-item" id="settings-nav"> <a id="settings-menu"> <i class="fa fa-gear"></i> <span>Settings</span> </a> </li> <li class="nav-item"> <a href="logout.php?logout"> <i class="fa fa-power-off"></i> <span>Logout</span> </a> </li> </ul> </div> </div> </div> <div class="sub-menu"> <div class="scroll"> <div class="scrollbar-container ps"> <ul class="d-block nav" id="activities-sub-menu"> <li class="nav-item active"> <a id="activities-page" class="active"> <i class="simple-icon-credit-card"></i> <span>Activities</span> </a> </li> <li class="nav-item"> <a id="activities-gallery-page"> <i class="simple-icon-list"></i> <span>Activity Gallery</span> </a> </li> </ul> <ul class="nav" id="retailer-sub-menu"> <li class="nav-item"> <a id="retailer-page"> <i class="simple-icon-check"></i> <span>Retailer</span> </a> </li> <li class="nav-item"> <a id="retailer-outlet-page"> <i class="simple-icon-check"></i> <span>Retailer Outlet</span> </a> </li> <li class="nav-item"> <a id="prospect-retailer-page"> <i class="simple-icon-calculator"></i> <span>Prospect Retailer</span> </a> </li> <li class="nav-item"> <a id="distance-matrix-page"> <i class="simple-icon-bubbles"></i> <span>Distance Matrix</span> </a> </li> </ul> <ul class="nav" id="settings-sub-menu"> <li class="nav-item"> <a> <i class="simple-icon-check"></i> <span>Retailer Outlet</span> </a> </li> </ul> </div> </div> </div> </div> 

use this code: 使用此代码:

$(document).on('mouseup', function(e) {
    if (!$(".sidebar").is(e.target) && $(".sidebar").has(e.target).length === 0) {
        //close or hide your submenu
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM