我追加从Ajax收到的数据,它还包含一个bsubmit类的divison。 当页面加载时,如果我点击包含类bsubit的div,则执行以下函数但是当我点击同时包含类bsubmit的新附加数据时,下面的代码不起作用。
这是代码
$(function() {
$(".bsubmit").click(function() {
var id = $(this).parent().parent().attr("id");
var comm= document.getElementById(id).getElementsByClassName("commentadd")[0].value;
$.ajax({
type: "POST",
url: "comment.php",
data: {id:id, comm:comm},
cache: false,
success: function(data){
$('.addcomment').slideUp('slow', function() {
});
// Bottom Line not working
$("#"+id).find(".item_comment").append(data); // DATA Contains a div with class bsubmit
$(data).appendTo("#"+id).find(".item_comment"); // Now these Appended Div isnt calling this function again, Why ? I want to call them again
$('#load').fadeOut();
}
});
return false;
});
});
答案 0 :(得分:3)
如果我理解你的问题:您是否尝试过使用.on()
方法? (jQuery 1.7)
$(yourParentElement).on('click','.bsubmit',function() {
答案 1 :(得分:2)
您的问题是您将点击事件绑定到.bsubmit
类,但该点击事件仅受到文档中已有的.bsubmit
的攻击,而不是新创建的。{/ p >
因此,您需要做的是,使用live()或on(),具体取决于您的Jquery版本。
$(".bsubmit").click(function() {
Jquery LIVE
$(".bsubmit").live("click", function() {
Jquery ON
$(".bsubmit").on("click", function() {
答案 2 :(得分:1)
appendTo
不会返回父级。
$("#"+id).find(".item_comment").append(data);
$(data).appendTo("#"+id).parent().find(".item_comment"); // Use "parent()"
$('#load').fadeOut();
但你真的应该缓存一些DOM元素......
var id = $(this).parent().parent().attr("id");
更改为:
var $parent = $(this).parent().parent();
然后:
$("#"+id).find(".item_comment").append(data);
更改为:
$parent.find(".item_comment").append(data);