我明白,事件委托是能够处理从父元素到其子元素的事件的传播。事件处理是否能够将“事件处理程序”分配给一个元素?JavaScript中的“事件委托”和“事件处理”之间的区别是什么?
编辑:我也发现"this explanation",但它是在我的头上。
我明白,事件委托是能够处理从父元素到其子元素的事件的传播。事件处理是否能够将“事件处理程序”分配给一个元素?JavaScript中的“事件委托”和“事件处理”之间的区别是什么?
编辑:我也发现"this explanation",但它是在我的头上。
“事件处理”意味着以您选择的任何方式处理事件。
“事件代理”是一种特殊的事件处理,其中一个元素的父元素的事件处理处理该元素的事件。对常规事件处理没有区别,它只是明确地描述了让事件冒泡以便在原始目标之外的另一个元素上处理的情况。
这应该是这样的做法:
<div id="foo">
<a href="#">Bar</a>
</div>
事件处理程序将被连接到div#foo
和捕获所有,例如,click
事件。当事件处理程序捕获到这样的事件时,它会检查event.target
以查看事件是否源自所需的源,例如a
元素。如果确实如此,它会做一些事情,否则它会忽略事件。这将是父母(div#foo
)处理click
事件的示例,作为代表的a
。 div#foo
处理由其子a
触发的事件。 a
委托事件处理到div#foo
,它不处理它们自己。
需要注意的是,当我说“a
处理事件”,这是不太混淆速记“附a
事件处理程序处理该事件”。 :)
我认为一个简单的解释是:处理程序=函数,它在该事件的东西;代表团=传递事件信息到其他节点 – SmokeyPHP