我明白,事件委託是能夠處理從父元素到其子元素的事件的傳播。事件處理是否能夠將「事件處理程序」分配給一個元素?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