から委任する以外に、セレクターに一致するページ上のすべての要素に対応するjQueryを使用してイベントを委任する方法はあります$(document)
か?
それはおそらく言葉遣いが悪いので、ここにこすりがあります:
以前jQuery.live
は、セレクターに一致するすべての要素にイベントが委任されていました。これはjQuery.delegate
、特定のコンテキストセレクター内のイベントをその子に委任することによって置き換えられましたjQuery.on
。これは、実質的に同じことを実行しますが、舞台裏で異なるビットを使用するによって置き換えられました(私は想像します)。
私がやりたいのはdiv.foo
、どこに住んでいるか、いつ住んでいるかに関係なく、ページ上のすべてにイベントハンドラーを安全に追加することです。.foo
ドキュメントと実証研究によると、以下はスクリプトの実行時に存在する要素にのみバインドされます。後でページに要素を配置する可能性のあるコードがあるため.foo
、これは正確には機能しません。
jQuery('.foo').on('click', handler);
は廃止された(おそらく削除された?)のでlive
、私はそれを使わないようにしていますが、私が思いつくことができる唯一の解決策は
jQuery(document).on('click', '.foo', handler);
しかし、これlive
は舞台裏で最初に行われたことではありませんか?もっと要点を言えば、これを行わない重要な理由はありますか?
特にバージョン1.7.2を使用していますが、一般的なjQueryの回答も役立ちます。