2012-03-27 130 views
2

我有一個函數:jQuery方法不起作用

$(".delete").click(function() { 
    $.ajax({ 
     url: "ServerHandler.ashx", 
     data: "mode=delete&item=" + $(this).attr("title"), 
     success: function() { 
      $(this).parent().parent().remove(); 
      alert("hi"); 
     } 
    }); 
});​ 

我有一個問題,當我刪除父對象。它只是不會消失。我試圖隱藏 - 沒有幫助。 警報稱爲正常。 如何解決?

對不起,對英文不好。

+0

你檢查,有您的JS控制檯沒有錯誤?另外,確保你在一個domready事件中設置它 - 否則事件處理程序可能不會註冊。 – halfer 2012-03-27 13:59:13

回答

5

默認情況下,您處於另一個函數中,並且有另一個this值。從外部函數與$.ajax函數傳遞this值如下:

$.ajax({ 
    context: this, 
    ... 
+0

thx。 它幫助了我) – LuckSound 2012-03-27 14:01:04

1

因爲在阿賈克斯成功回調函數this是從點擊回調函數不同。您可以將其緩存到本地變量,或使用$.ajax()context選項。

$(".delete").click(function() { 
    var $this = $(this); 
    $.ajax({ 
     url: "ServerHandler.ashx", 
     data: "mode=delete&item=" + $this.attr("title"), 
     success: function() { 
      $this.parent().parent().remove(); 
      alert("hi"); 
     } 
    }); 
}); 
0

您是否嘗試過在ajax函數中設置context: this,參數。

當成功處理程序啓動時,this的值將與之前的值不同。

在這裏看到更多的脫穎而出:http://api.jquery.com/jQuery.ajax/

0

試試這個:

$(".delete").click(function() { 
    $object = $(this); 
    $.ajax({ 
     url: "ServerHandler.ashx", 
     data: "mode=delete&item=" + $(this).attr("title"), 
     success: function() { 
      $object.parent().parent().remove(); 
      alert("hi"); 
     } 
    }); 
});​ 
+0

嘗試改善凹痕... – gdoron 2012-03-27 14:04:42