パフォーマンスによってjQueryの要素にイベントハンドラをアタッチする最良の方法は何ですか?
イベントハンドラーをアタッチしたいすべての要素は静的であり、生成および動的に作成された要素はありません。
<div class="foo"></div>
<div class="bar"></div>
<div class="qux"></div>
click
それらすべてに個別にイベント ハンドラーをアタッチしたいのですが、3 つのオプションがあります。
I. イベントハンドラを直接アタッチする
この古典的な方法では、イベント ハンドラーを要素に直接アタッチします。
$('.foo').on('click', f);
$('.bar').on('click', g);
$('.qux').on('click', h);
Ⅱ.イベントハンドラーを親に複数回アタッチする
このメソッドでは、前のメソッドの代わりに、要素ごとにイベント ハンドラーを親に複数回アタッチします。
$('body').on('click', '.foo', f);
$('body').on('click', '.bar', g);
$('body').on('click', '.qux', h);
III. イベントハンドラーを親に一度だけアタッチする
この方法は、1 つの違いを除いて、前の方法と同じです。イベント ハンドラーを 1 回だけアタッチし、ハンドラー自体で必要なセレクターを確認します。
$('body').on('click', function (e) {
var $elem = $(e.target);
if ($elem.is('.foo')) { f(); }
else if ($elem.is('.bar')) { g(); }
else if ($elem.is('.qux')) { h(); }
});
どれが性能的に優れているか知りたいです。