jQuery不从表中删除记录

时间:2013-10-14 08:22:18

标签: javascript jquery html mysql

我想创建一个新功能,当我按下一个小垃圾桶图标时,MYSQL中的记录将被删除。

以下是我的js代码:



        $("table").find("img[class='icon_garbage']").click(function(){

            var delnum = $(this).parents("tr").find("td[class='so']").text();
            var string='delete_num='+delnum;

            $.ajax({
                url:"../src/delete.php",
                type:"post",
                data:string,
                success: function(){
                  var tr = $(this).parents("tr");
                  tr.fadeOut('slow', function(){
                     $(this).remove();
                   });
                }

        })
    });

它没有用。

记录会删除,但记录不会淡出。

但如果我按如下方式修改代码:



        $("table").find("img[class='icon_garbage']").click(function(){

            var delnum = $(this).parents("tr").find("td[class='so']").text();
            var string='delete_num='+delnum;
            var tr = $(this).parents("tr");
                   tr.fadeOut('slow', function(){
                      $(this).remove();
                   });


            $.ajax({
                url:"../src/delete.php",
                type:"post",
                data:string,
                success: function(){
     //              var tr = $(this).parents("tr");
     //              tr.fadeOut('slow', function(){
     //                 $(this).remove();
    //               });
                }

        })
    });

它会起作用......

我不知道为什么,有人可以告诉我吗?

我的操作系统是MAC OSX 10.8.5,我使用MacVim作为我的编辑器。

1 个答案:

答案 0 :(得分:0)

将ajax调用中的上下文设置为this。如果不设置上下文,this不会在成功事件中引用您的元素。

$.ajax({
    url:"../src/delete.php",
    type:"post",
    data:string,
    context: this, // <----------------- here
    success: function(){
      var tr = $(this).parents("tr");
      tr.fadeOut('slow', function(){
         $(this).remove();
       });
    }
});