jquery event.target is_a_child_of(element)

时间:2012-08-31 20:41:04

标签: javascript jquery javascript-events

给定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>

如果elementmyDiv,则内部div或输入上发生的事件或myDiv内可能存在的任何其他元素应导致该语句评估为true。 / p>

我想我可以使用递归函数来构建子元素数组,然后检查event.target是否在数组中,但我想先看看是否有更简单的答案。

2 个答案:

答案 0 :(得分:35)

您也可以使用.has()

if ($(element).has(e.target).length > 0){
//
}

答案 1 :(得分:12)

jQuery to the rescue

if (jQuery.contains(element, e.target))