簡體   English   中英

單擊時切換div並在外部單擊時隱藏

[英]Toggle div when clicked and hide when clicked outside

我已經有了我的代碼來切換顯示和隱藏div但是每當我嘗試在外部點擊時添加隱藏時,它會與切換代碼沖突,我需要切換div_menu但是在外部點擊時也會隱藏它,就像facebook下拉菜單一樣

$(document).ready(function() {
    $(".toggle_menu").click(function(e) {
        $(".div_menu").toggle();
        e.preventDefault();
    });
});

你可以做點什么

 $(document).ready(function () { $(".toggle_menu").click(function (e) { $(".div_menu").toggle(); e.preventDefault(); }); $(document).click(function(e){ if(!$(e.target).closest('.toggle_menu, .div_menu').length){ $(".div_menu").hide(); } }) }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <button class="toggle_menu">toggle_menu</button> <div class="div_menu"> <div>some random content menu</div> </div> <div style="height: 100px; background: lightgrey;">some other content goes here</div> 

使用e.target查找當前目標元素,並使用is()針對選擇器檢查當前匹配的元素集

$(document).ready(function () {
    $(document).click(function (e) {
        if ($(e.target).closest(".toggle_menu,.div_menu").length) {
            $(".div_menu").toggle();
            e.preventDefault();
        } else {
            $(".div_menu").hide();
        }

    });
});

DEMO

$("body").click
(
   function(e){
      if ($(e.target).is($(".toggle_menu"))) {
        $(".div_menu").toggle();
      }else{
        $(".div_menu").hide();
      }
   }
);
$(document).ready(function() {
    $(".toggle_menu").click(function(e) {
        $(".div_menu").toggle();
        e.preventDefault();
    });
    $(document).click(function(e) {
        $(".div_menu").hide();
    });
});

嘗試這個

$(document).click(function(e){
    if($(e.target).parents('.div_menu').length == 0 && $(e.target).attr('class') != "div_menu"){
        $(".div_menu").toggle();
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM