jQueryの.on()メソッドをネイティブJSでどのように実装できるか知っていますか? "addEventListener"メソッドはフィルタリングの方法として子要素/セレクタ要素をとらないため、そこで何が起こっているのかを完全に理解するための適切なバブリング/キャプチャの知識はないと思います。私はevent.jsのソースを参照しましたが、最終的にaddEventListenerは通常のように使用されるように見えますが、ソースをかなりgrokしているかどうかはわかりません。jQueryで.on()のようなセレクタを持つネイティブのaddEventListener
ネイティブメソッドでバブリングとキャプチャを利用するためのメカニズムが提供されていない場合、jQuery .on()関数は実際には何のメリットもありますか?私は
.on('parent', '.child', fn(){});
が個別にすべての子供たちにイベントをアタッチするよりも効率的であるという印象の下にあったが、元の私の解釈から、それはjQueryのは、何らかの形で、パフォーマンスへのリードと方法でこれを管理しているかどうか言うことは困難です改善、または読みやすさのためだけの場合
個々の子にイベントを添付するのではなく、子要素のバブリング/キャプチャフェーズを利用するイベントを親に実装するための標準的な方法がありますか?
もしあなたが '.on()'の仕組みを理解していなければ、実際にその性能を判断することはできません – Alexander
イベントについて知りたいことをすべて学ぶには:http://www.quirksmode.org/ js/introevents.html。あなたの質問について:あなたが欲しいものは* event delegation *と呼ばれ、実際にはとても簡単です。任意の親に偶数ハンドラを付け、ターゲットノード( 'event.target')があなたの条件を満たしているかどうかをチェックします。 –
* related:* [DOM Event delegationとは何ですか?](http://stackoverflow.com/questions/1687296/what-is-dom-event-delegation) –