在 MDN Event.target 参考文档 中,有一个关于实现事件委托的示例:
事件委托示例
// Assuming there is a 'list' variable containing an instance of an
// HTML ul element.
function hide(e) {
// Unless list items are separated by a margin, e.target should be
// different than e.currentTarget
e.target.style.visibility = 'hidden';
}
list.addEventListener('click', hide, false);
// If some element (<li> element or a link within an <li> element for
// instance) is clicked, it will disappear.
// It only requires a single listener to do that
示例中不清楚的部分
我在示例中不理解的是这个注释:
// Unless list items are separated by a margin, e.target should be
// different than e.currentTarget
问题
如何使用 <li>
元素上的 margin 区分 Event.target
和 Event.currentTarget
?
event.currentTarget
总是指向事件处理程序所附加的元素,而event.target
则标识发生事件的元素。" - 来自 https://developer.mozilla.org/en-US/docs/Web/API/Event/currentTarget 也许你可以将这句话添加到你的答案中,以便未来搜索此主题时使用。谢谢! - maljukan