live() (現在は jQuery から削除されています)、delegate()、および on() のすべてのドキュメントを確認しました。この問題で 8 時間頭を悩ませた後、私はそれを修正する方法がわかりません。AJAJ 経由で取り込まれたデータから作成される一連のリンクに匿名関数を追加したいと考えています。私は次のコードを試しました:
$("#more_items_outer").on(
'click',
'.show_more',
function(a){
var target = a.parentElement;
if (target.is(":visible")){
target.hide("slow");
} else {
target.show();
}
}
);
このコードは、ページの読み込み後に開発ブラウザーの JS コンソールで実行すると正常に動作します。しかし、実際のリンクが作成される前にこのコードが実行された場合、このコードはこれらのリンクに対して何もしません。私が理解しているように (そして、公式の jQuery ドキュメントを含む複数のソースで説明されているように)、上記のコードで使用した on() 関数は、クラス "show_more" のすべての要素が作成されるようにする必要があります。 ID「more_items_outer」を持つ要素の子孫として、クリックすると無名関数が実行されます。これは、新しい要素の作成がこのコードの実行より後の日付であっても当てはまります。ここの私の開発システムではそれは起こっていません。それが役立つ場合、私はjQuery 1.9.1を実行しています。