-1

コメント ページがあり、各コメントの下に、Jquery を使用してサブコメントを投稿するフォームがあります。

    <div class="commentcontainer" id="commentload0-<?php echo $kid;?>-3">
-----------------comments go here------------------
</div>

    <div class="commentupdate2" id="commentbox0-28-3" style="display:none">
     <div class="stcommenttext3">
<form action="" method="post" name="0-28-3"><input name="wh" id="wh" value="1" type="hidden">
<textarea name="comment" id="ctextarea0-28-3" onkeyup="textar1(this)" class="tarea2 expta"></textarea>
<input value="Save" id="0-28-3" class="subcoment_a button" style="vertical-align:top" type="submit"></form>
     </div></div>


<div class="comment_ui2" id="view0-<?php echo $kid;?>-3">
<a href="#" class="subcomments" vid="0-<?php echo $kid;?>-3" id="0-<?php echo $kid;?>-3">Load more comments</a></div>


$(".subcoment_a").click(function(){
var element = $(this);
var ID = element.attr("id");
var comment = $("#ctextarea"+ID).val();
var dataString = 'comment='+ comment + '&msg_id=' + ID;
if(comment=='') {
alert("Incomplete form");
} else {
$.ajax({
type: "POST",
url: "/save-comment.php",
data: dataString,
cache: false,
success: function(html){
$("#commentload"+ID).append(html);
$("#ctextarea"+ID).val('');
$("#ctextarea"+ID).focus();
}
 });
}
return false;
});

これまでのところすべてが機能します。

しかし、その後、「さらにコメントを読み込む」をクリックして、次のコメント _forms を動的に読み込みます (ここでも Jquery を使用します)。動的にロードされるフォームにテキストを入力すると、Jquery を使用してフォームを送信できません。ページはスクリプトを呼び出しませんが、それ自体を更新します。

ありがとう。

4

1 に答える 1

2

使用する:

$(document.body).on('click', ".subcoment_a", function(){

".subcoment_a"したがって、バインディングを行うときに要素が存在しない場合でも、クリックイベントは要素に委任されます。

于 2013-03-17T16:17:02.120 に答える