2013-10-11 125 views

回答

4

“事件处理”意味着以您选择的任何方式处理事件。

“事件代理”是一种特殊的事件处理,其中一个元素的父元素的事件处理处理该元素的事件。对常规事件处理没有区别,它只是明确地描述了让事件冒泡以便在原始目标之外的另一个元素上处理的情况。

这应该是这样的做法:

<div id="foo"> 
    <a href="#">Bar</a> 
</div> 

事件处理程序将被连接到div#foo和捕获所有,例如,click事件。当事件处理程序捕获到这样的事件时,它会检查event.target以查看事件是否源自所需的源,例如a元素。如果确实如此,它会做一些事情,否则它会忽略事件。这将是父母(div#foo)处理click事件的示例,作为代表adiv#foo处理由其子a触发的事件。 a委托事件处理到div#foo,它不处理它们自己。

需要注意的是,当我说“a处理事件”,这是不太混淆速记“附a事件处理程序处理该事件”。 :)

+0

严格来说,我不会说的“元素”处理事件 - 他们_receive_它们,然后注册功能“手柄”他们。 – Alnitak

+0

不够公平,编辑该陈述。 :) – deceze

0

事件处理仅仅是一个通用术语的意思是“处理事件”。
事件代表团主要涉及现在已弃用的jQuery.deleate方法。这全是关于事件传播。这意味着处理其他节点上的事件。 事件传播是关于事件从那里它发生在更高级别或较低级别的节点的节点如何传播。其实有两种传播模式:冒泡(上)和捕捉(下)。

standard的DOM事件提供了两种型号。但并非所有浏览器都支持它们。希望像jQuery这样的图书馆经常隐藏兼容性差异。

参见:http://www.quirksmode.org/js/events_order.html

+0

事件代表团是一个* *的概念是不是纯粹的有限的,甚至是“多与” jQuery的。 – deceze

相关问题