0

我附加了从 Ajax 收到的数据,它还包含一个带有 bsubmit 类的分区。当页面加载时,如果我单击包含类 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;
        });


    });
4

3 回答 3

3

如果我理解您的问题:您是否尝试过该.on()方法?(jQuery 1.7)

$(yourParentElement).on('click','.bsubmit',function() {
于 2012-05-13T00:15:34.560 回答
2

您的问题是您将单击事件绑定到.bsubmit该类,但是该单击事件仅受到.bsubmit文档中已有的攻击,而不是新创建的攻击。

因此,您需要做的是,根据您的 Jquery 版本使用live()on() 。

更改此行:

$(".bsubmit").click(function() {

jQuery LIVE

$(".bsubmit").live("click", function() {

或者

jQuery 开启

$(".bsubmit").on("click", function() {
于 2012-05-13T00:37:22.293 回答
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);
于 2012-05-13T00:15:39.910 回答