我的“mouseup”事件让我感到奇怪。我在div里面有一个div。 mouseup事件附加到OUTER div,但如果我碰巧点击了INNER div,则e.target设置为子div而不是具有该事件的父div。
这是正常的吗?
<div class="parent">
<div class="child"></div>
</div>
所以a:
$("body").on('mouseup', '.parent',myMethod);
如果e.target被精确点击,则将其报告为子项。
答案 0 :(得分:1)
请注意.target
和.currentTarget
事件对象的此属性是调度事件的对象。在事件冒泡或捕获阶段调用事件处理程序时,它与event.currentTarget不同。
event.target
//对最初调度事件的目标的引用。event.currentTarget
//对当前注册的事件目标的引用。值得测试:
$("body").on('mouseup', '#parent1', function (e) {
console.log(e.target,e.currentTarget);
});
更多阅读:
MDN :event.target
MDN :event
jQuery (关于直接和委派事件的explanation)