2013-10-11 320 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

相關問題