ご存知のように、jQuery 1.7 以降:
$('someSelector').live('click', fn());
本質的に次のようになりました。
$(document).on('click', 'someSelector', fn());
すべてのライブ イベントは、セレクターの要素に直接バインドされるのではなく、ドキュメントにバインドされるデリゲートです。
これは'someSelector'
、将来一致する要素がDOMに存在しないため、イベントハンドラーを(直接またはデリゲートバインディングを介して)バインドできないためだと思います。
すべての要素が動的に読み込まれるわけではないにしても、大部分が動的に読み込まれる単一ページ アプリケーションの場合、すべてをドキュメントにバインドすることでパフォーマンスの問題を処理する最善の方法についてのガイドラインは公開されていますか?
たとえば、新しいコンテンツがロードされたときにイベント ハンドラーを登録/再登録する最良の方法とajax()
、怠惰な.live()
考え方で書かれたコードを更新する方法をカバーしていますか?