Event.target指的是孩子,而不是父

时间:2015-07-22 06:42:21

标签: javascript jquery

考虑以下嵌套div

<div class="parent">
  <div class="child"></div>
</div>

在jQuery中,我做

$('.parent').click(function (e) {
  e.target // this refers to .child instead of .parent
})

在这种情况下,有没有办法获得.parent的引用,而不是.closest()

3 个答案:

答案 0 :(得分:3)

您可以使用$(this)代替e.targetthis,因为您可能希望在其上使用jQuery方法。

&#13;
&#13;
$('.parent').click(function(e) {
  alert($(this).attr('class'));
});
&#13;
.parent {
  color: green;
}
.child {
  color: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<div class="parent">
  Parent
  <div class="child">Clild</div>
</div>
&#13;
&#13;
&#13;

$(this)将始终引用发生事件的元素。

答案 1 :(得分:3)

我很困惑,为什么我不能简单地使用$(this)引用。我正在使用Meteorthis绑定到事件回调中的不同对象。在这种情况下,您可以使用event.currentTarget,我相信jQuery如何绑定this引用。

答案 2 :(得分:2)

只需使用this,它就是指发生了哪个事件的元素。

$('.parent').click(function (e) {
    console.log(this);
})

DEMO