2010-04-29 54 views
1
$.ajax({url: path_to_file, cache: false, success: function(html_result){ 
    $("#window_" + this.id + "_cont_buffer").html(html_result);}) 

那麼現在。這個函數調用是在一個類的函數中。 this.id是該類的一個屬性。這會將this.id的函數值傳遞給匿名函數的字符串,還是會在函數實際被調用時嘗試對其進行求值,因此沒有任何意義。輕微混亂回撥功能

如果這是行不通的我怎麼想它,你能推薦我是如何做到這一點。

回答

2

$.ajax()的特定情況下,可以使用context屬性指定this。所以,馬修的解決方案爲您提供了在您製作從$.ajax函數調用的函數指定this

有關爲success回調設置this的更多信息,您可以看到jQuery documentation

+0

哦,對了,我沒有注意到他添加了'context:this'。所以這基本上迫使回調函數中的'this'是我的實例發出AJAX請求的'this'。這個聰明的東西。 – thecoshman 2010-04-29 14:00:31

1

默認this將是一個內部jQuery對象。但是,您可以通過明確指定context: this作爲呼叫的一部分來覆蓋該內容。然後,this將成爲您從中調用它的對象。

$.ajax({url: path_to_file, context: this, cache: false, success: function(html_result){ 
    $("#window_" + this.id + "_cont_buffer").html(html_result);}) 

會做你想做的。

+0

所以是我的'是如何工作的this'正確的認識? – thecoshman 2010-04-29 13:51:50

+0

@thecoshman,如果你不使用'背景:this','this'將是一個內部的jQuery對象。 – 2010-04-29 14:00:47