【发布时间】:2011-12-14 01:51:07
【问题描述】:
关于如何检测除指定元素之外的任何地方的点击的问题已得到解答,如下所示:
Event on a click everywhere on the page outside of the specific div
我遇到的问题是试图弄清楚如何检测除给定元素(包括其中一个子元素)之外的任何地方的点击。
例如在这段代码中:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script>
$(function() {
$(document).click(function(e) {
$('#somediv').hide();
});
$('#somediv').click(function(e) {
e.stopPropagation();
});
});
</script>
<div style="border: 1px solid red; width:100px; height: 100px" id="somediv">
<span style="display: block; border: 1px solid green; width:50px; height: 50px; margin: 0 auto" id="someSpan"></span>
</div>
点击红色 div 以外的任何地方都会使其隐藏。不仅如此,点击它的子元素(绿色跨度)应该会导致它隐藏。它不应该隐藏的唯一一次是如果您单击它而不是跨度。就目前而言,点击 span 也被视为点击父 div,因此如果点击 span,它不会隐藏 div。
如何做到这一点?
【问题讨论】:
标签: javascript jquery