执行一个函数后运行jquery函数

时间:2015-06-01 12:17:56

标签: javascript jquery html ajax

我正在使用AJAX添加一些注释并获得返回格式化的HTML并将其添加到带有DOM操作的HTML中,

jQuery.ajax({
    url: baseURL + "index.php/user/news/add_comment",
    data: $("#comment_fm").serialize(),
    type: "POST",
    success: function(data) {

        var objData = jQuery.parseJSON(data);

        if (objData.cival == 1) //Success..
        {
            $("#comment").val('');
            $("#comment_box").replaceWith(objData.comment);
            $("#commentcounts").replaceWith(objData.commentcounts);
        }

    } // Success End
}); //AJAX End

使用上面的代码,我可以看到我的评论被添加, 现在在相同的返回格式化HTML中,有一个删除按钮,它具有JS功能关联,

下面是删除JS,

function deletecomment(commentid) {
    jQuery.ajax({
        url: baseURL + "index.php/user/news/deletecomment",
        data: {
            comment_id: commentid
        },
        type: "POST",
        success: function(data) {
            var objData = jQuery.parseJSON(data);

            if (objData.cival == 1) {
                $("#commentcounts").replaceWith(objData.commentcounts);
                $("#commentbox" + commentid).remove();
            }
        }
    });
}

下面是我的删除按钮,它触发了函数deletecomment()

<a href="javascript:deletecomment(<?php echo $comment['comment_id'];?>);"><i class="fa fa-trash text-info"></i></a>

但我的问题是,在添加函数运行后我无法删除此注释, 如果我刷新页面,那么删除功能就可以了,

所以问题是,如何在不重新加载页面的情况下使多功能工作?

提前致谢,

1 个答案:

答案 0 :(得分:0)

我建议你尝试如下:

<a class="deleteComment" data-id="<?php echo $comment['comment_id'];?>" href="#"><i class="fa fa-trash text-info"></i></a>

你的JS将是:

$(document).on('click','.deleteComment',function(){
    jQuery.ajax({
          url: baseURL + "index.php/user/news/deletecomment",
          data: {
                 comment_id: $(this).data('id');
          },
          type: "POST",
          success: function(data) {
                var objData = jQuery.parseJSON(data);
                if (objData.cival == 1) {
                     $("#commentcounts").replaceWith(objData.commentcounts);
                     $("#commentbox" + commentid).remove();
                }
          }
    });
});