Jquery通过AJAX删除内容

时间:2010-08-01 05:29:58

标签: jquery ajax codeigniter

我有一个PHP应用程序,在其中一个页面上有一个删除功能。我允许用户通过点击标签从他们的个人资料中删除标签。用户点击代码后,之前显示代码的HTML中的内容区域会使用新的代码集进行更新。

现在问题是,从标签列表中,用户第一次点击标签时,它就会被删除。如果用户现在点击另一个标签(来自刷新区域),则没有任何反应。

 $("a.single_tag").click(function(){
   the_id = $(this).attr('id');
     $.ajax({
         type: "POST",
         data: "data="+the_id,
         url: "<?php echo site_url('user/deletetag/');?>/",
         success: function(msg)
         {
           $("#current_tags").fadeIn("slow");
           $("#current_tags").html(msg);

         }
    });  

由于

3 个答案:

答案 0 :(得分:5)

不要使用.click(),而是需要.live('click', func),如下所示:

$("a.single_tag").live('click', function() {

当您使用.click()时,您将click处理程序绑定到这些元素,但是当内容被替换时,没有处理程序的新元素就在那里。使用.live(),当click事件冒泡到document并执行时,它会监听...当页面加载或稍后添加时,元素是否存在,这无关紧要。 。修正你的问题:)

答案 1 :(得分:0)

你需要在函数中抛出那块绑定代码,并在成功回调中调用它,或者只更新更新标签的HTML(即返回要删除的id,或者要追加的html块) ,而不是重新显示整个块。)

更新内容时,新.click代码中不存在a绑定。

编辑:@Nick Craver的解决方案要好得多。

答案 2 :(得分:0)

这是因为您刚从服务器收到的新html标签在点击时没有绑定到它们的“删除”功能。