事件委派如何在Javascript内部工作

时间:2014-12-05 05:57:50

标签: javascript javascript-events event-handling

我想知道JS内部的事件委派究竟是如何工作的?堆栈溢出的人已经回答了甚至是委托(What is Event Delegation),但我没有看到关于它是如何工作的任何观点或说明。

父节点如何知道单击了哪个子节点?它应该存放在哪里?

1 个答案:

答案 0 :(得分:1)

W3C Events Specification定义事件的工作方式。在事件目标上调度Events,生成的Event对象具有关联的target属性,该属性是最初调度事件的元素(例如,已单击的元素)。

事件冒泡DOM,它遇到的任何有该事件监听器的元素由其处理程序调用。相关事件对象使用 currentTarget 属性进行扩充,该属性引用调用侦听器的元素。

请注意,并非所有使用的浏览器都完全支持上述所有功能,特别是 currentTarget 属性相当新,旧的IE支持 event.srcElement 而不是 event.target

您应该阅读上面链接的规范,MDN Event reference和相关文章。