1

jquery の .load() 関数でロードされた php ファイルに含まれる html スニペットで、次の簡単なコードを実行しようとしています。

$(".thumbnail").on("click", function(event){

    alert("thumbnail clicked");
});

ただし、ページのこの部分では機能しないようです。ajax経由でロードされていない要素への他の呼び出しがあり、それらは .on() 関数で正常に動作します。.on() は ajax で読み込まれたコンテンツを認識するという印象を受けました。

私の .thumbnail 要素は、一連の div 内に含まれる img タグ内の画像であり、すべて ajax 経由でロードされます。jquery はこのコンテンツを見つけることができないようです。私のコードはすべて準備完了関数に含まれています。

これらの新しい要素を jquery に認識させる方法はありますか?

ありがとう。

4

1 に答える 1

5

動的コンテンツ用の委任されたイベント ハンドラーが必要です。

$('#container').load('somefile.php');

$('#container').on('click', '.thumbnail', function(event){
     // do stuff
});

.thumbnail最も近い非動的な親は、おそらくコンテンツをロードする要素であり、上記のコードのように、クラスに基づいてフィルタリングして、イベント ハンドラーをその要素にアタッチする必要があります。

于 2013-05-15T17:45:53.290 に答える