有誰知道jQuery的.on()方法可以在原生JS中實現嗎? 「addEventListener」方法不採用子/選擇器元素作爲過濾的方式,我不認爲我有適當的冒泡/捕獲知識來完全理解那裏發生的事情。我在event.js中查詢過源代碼,看起來最終addEventListener的使用方式與以前一樣,但我不確定是否對源代碼非常滿意。原生addEventListener與選擇器像jQuery中的.on()
如果本機方法沒有提供利用冒泡和捕獲的機制,那麼jQuery .on()函數是否真的有什麼好處,還是隻是讓它看起來像這樣?我的印象是,
.on('parent', '.child', fn(){});
比分別安裝每個事件給所有的孩子更高效之下,但是從我的來源解釋,這是很難說,如果jQuery是莫名其妙地管理這種在某種程度上導致性能改進,還是僅僅爲了可讀性。
是否有一個標準的方法來實現父母的事件,利用它的子元素的冒泡/捕獲階段,而不必爲每個孩子附加一個事件?
如果你不明白'.on()'是如何工作的,那麼我懷疑你實際上可以判斷它的性能 – Alexander
要了解你需要了解的所有事件:http://www.quirksmode.org/ JS/introevents.html。關於你的問題:你想要什麼叫*事件代表團*,其實很簡單。將一個偶處理程序附加到任何父級,並檢查目標節點('event.target')是否滿足您的條件。 –
*相關:* [什麼是DOM事件委託?](http://stackoverflow.com/questions/1687296/what-is-dom-event-delegation)。 –