jQuery:无法在动态加载的内容上提交表单 - .click不起作用

时间:2013-03-17 16:16:01

标签: jquery

我有一个评论页面,每个评论下面都有一个表单,用于使用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提交表单。该页面不会调用脚本,而是自行刷新。

感谢。

1 个答案:

答案 0 :(得分:2)

使用on

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

因此,即使在您进行绑定时不存在,也会将click事件委托给".subcoment_a"个元素。