繁体   English   中英

单击按钮显示div,然后单击其外部时隐藏此div

[英]Show div on click on button, then hide this div when clicking outside of it

HTML

<div id="selectPeriodRangePanel">
    <p>Test</p>
</div>

<button id="period_select_range_btn">Select Range</button>

JQUERY

$("#period_select_range_btn").off().on("click", function(){
    $("#selectPeriodRangePanel").toggle();
});

当我单击按钮时,将打开selectPeriodRangePanel DIV 当我在它外面点击时,我想隐藏这个DIV

我怎样才能做到这一点 ?

试试这个

 $(document).on("click", function(e){ if($(e.target).is("#period_select_range_btn")){ $("#selectPeriodRangePanel").show(); }else{ $("#selectPeriodRangePanel").hide(); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="selectPeriodRangePanel" style="display:none"> <p>Test</p> </div> <button id="period_select_range_btn">Select Range</button> 

您可以为文档元素设置单击处理程序,如果单击发生在外部,则可以隐藏它。

 $("#period_select_range_btn").off().on("click", function() { $("#selectPeriodRangePanel").toggle(); }); $(document).click(function(e) { if ($(e.target).closest('#selectPeriodRangePanel, #period_select_range_btn').length == 0) { $("#selectPeriodRangePanel").hide(); } }) 
 body { min-height: 500px; background-color: lightblue; } #selectPeriodRangePanel { background-color: lightgrey; } 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="selectPeriodRangePanel"> <p>Test</p> </div> <button id="period_select_range_btn">Select Range</button> 

我会这样做:

试试这个

 $(document).on("click", function(e) { var el = $(e.target).closest("#selectPeriodRangePanel, #period_select_range_btn").length != 0; $("#selectPeriodRangePanel").toggle(el); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="selectPeriodRangePanel" style="display:none"> <p>Test</p> </div> <button id="period_select_range_btn">Select Range</button> 

暂无
暂无

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

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