如果我有以下幾點:如何保持一個變量回調
jqxhr = $.ajax(settings)
.done(function(result) {
但我有一個變量稱爲身份識別碼,我需要Ajax調用完成後參考。由於ajax是異步的,恐怕在被調用的時候,myID會變髒。
問:如何保存myID的副本,以便它是done方法中的正確值?我使用.context()?
如果我有以下幾點:如何保持一個變量回調
jqxhr = $.ajax(settings)
.done(function(result) {
但我有一個變量稱爲身份識別碼,我需要Ajax調用完成後參考。由於ajax是異步的,恐怕在被調用的時候,myID會變髒。
問:如何保存myID的副本,以便它是done方法中的正確值?我使用.context()?
使用閉包:
var myID = 1;
(function(myID){ // you can choose a different variable name here to avoid confusion
jqxhr = $.ajax(settings)
.done(function(result) {
alert(myID); // will still be 1
});
})(myID)
myID = 2;
下面是一個例子:
不錯,你創建了一個閉包.... :)很好 –
你可以保存到$ .data中,如果有人試圖重新插入 - 你拒絕它。
這樣,你可以保存原始值
你不能要麼只是把它這樣你就可以從「結果」中獲取它,或者使其成爲對象內的另一個名稱/對象(myID.id)? –