-1
 var post = '<img class="img_proids" src="image/thumbnail/' + usr_data[2] + '"/><div class="div_postcontent"><ul class="ul_postcontent">';
 post = post + '<li><a class="a_unames" href="#" usr_data[1] + '</a>';
 post = post + '<span class="bu_delpost">Delete this post<input type="hidden" value="'+ result[1] + '"/></span></li></ul></div><div class="float_clear"></div><br><hr><br>';
 p_type.after(post); // append the post here using jquery 

私がしたことは、ユーザーがデータを投稿したときに、ページ全体を更新したくないということです。そのため、ajax リクエストを使用してデータをサーバーに送信し、jQuery を使用して投稿コンテンツをページに追加しました。しかし、イベント:

$("span.bu_delpost").click(function(){ // see 3rd line, span class='bu_delpost'

   var d_postid =  $(this).find("input").val();
   var p_type = $("#inp_type").val();

    $.post("ajax/ajx_dpost.php",{d_post:d_postid,type:p_type},function(result){
               alert(result)                
});

});

追加された投稿では機能しないようですが、データベースから最初に読み込まれた投稿では機能するようです。

新しく追加されたスパン要素に対してこのイベントが機能しないのはなぜですか? ただし、CSS プロパティは、この新しく追加された要素では機能するようですが、JavaScript イベントでは機能しないようです。

: JavaScript イベントはファイルに書き込まれ、jquery.posts.js次を使用して html ファイルに含まれます。<script src="jquery/jquery.posts.js"></script>

4

2 に答える 2

2

イベント委任- 要素が動的に DOM に追加されるため

変化する

$("span.bu_delpost").click(function()

$(document).on('click', 'span.bu_delpost', function()

これにより、ドキュメントにイベントが添付され、イベントが発生したときに処理されます。

documentパフォーマンスのために、 aに置き換えることを常にお勧めしstaticParent containerます。

于 2013-07-29T18:28:38.450 に答える