我想要一个窗口只在单击pop_up时关闭(而不是单击div内容).例如.单击背景图层会隐藏div.在下面的代码中,我不希望它仅在“pop_up”上单击div内容bot时关闭#pop_up.
我怎样才能做到这一点?
$("#pop_up").click(function() { $("#pop_up").hide(); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="pop_up"> <div id="pop_up_content"> <h1> world </h1> </div> </div>
解决方法
您可以使用单击的事件参数,并查看单击是否在另一个元素内(或者它是元素本身)
JSFiddle:https://jsfiddle.net/32mz2x3x/1/
$("#pop_up").click(function(event) { if ($(event.target).parents().andSelf().is('#pop_up_content')) { return } $("#pop_up").hide(); });
我用父母来检查你点击的位置是否在pop_up_content元素中,我使用了andSelf因为你可能点击#pop_up_content(而不是在里面)
更多信息:
> jQuery andSelf
function
> jQuery is
function
> jQuery parents
function
> jQuery event
object