给定element
,一个包含javascript对象/ DOM元素的变量,如何确定event.target是否是element
内的元素?
function(event){
// assume that var element exists in this scope
if(event.target == a_child_of(element))
// do something
}
<div id="myDiv">
<div class="innerDiv">
<input type="text"/>
</div>
</div>
如果element
为myDiv
,则内部div或输入上发生的事件或myDiv
内可能存在的任何其他元素应导致该语句评估为true。 / p>
我想我可以使用递归函数来构建子元素数组,然后检查event.target是否在数组中,但我想先看看是否有更简单的答案。
答案 0 :(得分:35)
您也可以使用.has()
if ($(element).has(e.target).length > 0){
//
}
答案 1 :(得分:12)
if (jQuery.contains(element, e.target))