我有一個討厭的變量作用域問題$ .post。在提交表單之前,我想先檢查用戶是否編輯過內容。如果用戶沒有,我會返回false。
我已經看過Stackoverflow上的一堆不同的例子,一般的做法是在函數內部創建一個函數和一個回調函數來處理回調。我的問題是,當我調用下面的getReturned,回調沒有得到實現(知道這是因爲表單被提交,我試過一個警報)。順便說一句,alert("No changes were made so text was not submitted.");
成功調用。
我在做什麼錯?
function getReturn(callback, id, old_variable){
var return_value = "ERROR";
$.post('myURL', {"id" : id},
function(data) {
var text_from_server = $.trim(data[0].note_text);
if (old_variable == text_from_server){
alert("No changes were made so text was not submitted.");
return_value = false;
callback(return_value);
} else {
return_value = true;
callback(return_value);
}
},
"json"
);
};
var id = 123;
var old_variable = "foo";
getReturn(
function(return_value){return return_value;/*alert("SUCCESS!");*/},
id,
old_variable
);
當你在回調中測試報警,你是否也有一個return語句之前警報? @Ariel似乎是對的,但回調仍應該被調用。 – Lycha