5

イベント.on().live().click()などをバインドする複数の方法を知っており、調査しています.live()。私が直面している問題は、動的 DOM 要素をイベントにバインドすることです。

リンクをdiv含み、ページ分割された があります。リンクは AJAX で動的に読み込まれます。これらのリンクのバインドされたイベントを上書きしたいので、 を使用.unbind()して試し.on()ました。問題は、これらの動的にロードされたリンクがバインドされていないことです。$('#id_of_links')これは、セレクターが以前のリンクのセットでキャッシュされているためだと思います。

質問: ユーザーがリンクの次のページをクリックしたときにコールバックを設定せずに、ページにロードされているすべての要素をいつでもバインドすることは可能ですか?

4

2 に答える 2

14

動的に追加された要素の場合、関数をその親の 1 つにバインドする必要があります

$('#PARENT').on('click', '#DYNAMICALLY_ADDED_CHILD', function(){ CODE HERE });

親は DOM ツリーに既に存在している必要があります...

詳細: http://api.jquery.com/on/

于 2013-06-03T13:54:16.137 に答える
-2

コールバック メソッド/関数、または特定の属性または特性を持つ要素に適切な関数がバインドされているかどうかをループしてチェックし続ける関数がなければ、ページにまだ読み込まれていない要素であっても、すべての要素をバインドすることはできません。おそらく時間の経過とともにメモリリークが発生します。

于 2013-06-03T13:53:47.997 に答える