2012-01-28 32 views
0

當我使用下面這行代碼時,$(this)在我的jQuery函數(下面的示例)中很有用。

$(this).closest('.item').children('h3').children('a').text('UPDATED'); 

但是,在同一個函數中,我嘗試在成功的函數內移動它:$ .ajax的區域,它不再起作用。我已經檢查過成功功能是否適用於警報。

有沒有辦法在$ .ajax中保留$(this)的範圍?

在此先感謝您的任何建議。

問題區域:

success : function(msg){ 
$(this).closest('.item').children('h3').children('a').text('UPDATED'); 
}, 

回答

5

是,使用情境:

$.ajax({ 
    success: function() { 
     $(this)... 
    }, 
    context: this // or whatever this is 
}) 

中查找context選項約14%下跌的一頁。

+0

我不知道存在。謝謝! – 2012-01-28 01:31:03

+0

@邁克爾哈倫:我要麼 – 2012-01-28 01:32:15

+0

我知道。這不是很有名。充分披露,我發現它是因爲堆棧溢出問題。 – Joe 2012-01-28 01:32:36

0

您可以將$(this)分配給一個變量。

var $myThis = $(this); 
// ajax stuff 
success: function(msg){ 
    $myThis.closest('.item').children('h3').children('a').text('UPDATED'); 
} 
2

您正在尋找錯誤$(this)(在錯誤的上下文中)。做類似

$(".button").click(function() { 
    var $this = $(this); 
    $.ajax({ 
     success: function() { 
      // $this is $(this) you need 
      $this.closest('.item').children('h3').children('a').text('UPDATED'); 
     } 
    }); 

});