2013-10-14 86 views
-1

我想創建一個新的函數,當我按下一個小垃圾桶圖標時,MYSQL中的記錄將被刪除。jQuery不刪除表中的記錄

以下是我的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

看到http://stackoverflow.com/questions/6394812/this-inside-of-ajax-success-not-working –

+0

什麼是不工作?點擊功能是否正在運行?錶行被正確刪除?是包含正確數據的「字符串」變量(從來沒有命名變量字符串),是否在delete.php上調用了任何東西? –

回答

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(); 
     }); 
    } 
});