2

我的“mouseup”事件出现了奇怪的行为。我在 div 中有一个 div。mouseup 事件附加到 OUTER div,但如果我碰巧单击 INNER div,则 e.target 将设置为子 div 而不是具有该事件的父 div。

这是正常的吗?

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

所以一个:

$("body").on('mouseup', '.parent',myMethod);

如果 e.target 被准确点击,则将其报告为子级。

4

1 回答 1

1

.target注意和之间的区别.currentTarget

事件对象的这个属性是事件被调度的对象。在事件的冒泡或捕获阶段调用事件处理程序时,它与 event.currentTarget 不同。

  • event.target // 对最初调度事件的目标的引用。
  • event.currentTarget// 对事件当前注册目标的引用。

值得测试:

$("body").on('mouseup', '#parent1', function (e) {
    console.log(e.target,e.currentTarget);
});

演示jQuery
演示纯 javascript


更多阅读:

MDN : event.target
MDN : event
jQuery (关于直接和委托事件的解释)

于 2013-09-03T21:09:56.227 回答