4

投稿を追加してコメントを付けることができる投稿追加機能があります。問題は、既存の投稿でコメントが正常に機能することですが、新しい投稿を追加して、新しく追加された投稿にコメントすると、機能しません。これが私が持っているものですhttp://jsfiddle.net/testtracker/Nh2NQ/
最初にコメントが既存の投稿で正常に機能することを確認し、次に投稿を追加してから、新しく追加された投稿にコメントしてみてください..機能しません。 。ここでの問題は何ですか。plsヘルプ

ありがとう

4

4 に答える 4

2

これを試してください:http://jsfiddle.net/Nh2NQ/5/

この行を変更しました

$('.comment_entry form').submit(function (e) {

});

の中へ

$('body').on('submit', '.comment_entry form', function (e) {
    ...
});

formそのため、イベント委任を使用して、送信ハンドラーを動的に挿入された要素にもアタッチできます。body要素に階層的に「近い」他の共通の親に自由に変更してください

于 2012-08-28T12:59:12.887 に答える
2

これは、セレクターが評価されたときに見つかった要素にリスナーを追加するだけです。

$('.comment_entry form').submit( ...

この時点では新しいフォームは存在しないため、リスナーは登録されていません。

代わりにライブ デリゲートを使用します。

$('#posts').on('submit', '.comment_entry form', function(e) { ... });
于 2012-08-28T12:59:39.470 に答える
1

JQueryは、ページの読み込み時にイベントを要素にバインドします。そのため、新しく追加された要素にはイベントがバインドされていないため、イベントがトリガーされない場合があります。

これはどんな状況でも確実に機能します

$('#posts').on('submit', '.comment_entry form', function(e) {
         code to add comment.....
 });
于 2012-11-24T18:51:43.947 に答える
0

これは、要素が存在する前に jQuery が送信イベントを初期化するためです。new を追加すると.comment_entry form、jQuery はそれを認識せず、submit イベントはこの特定の要素にバインドされません。

このリンクが役立つ場合があります

于 2012-08-28T12:58:36.027 に答える