私は、これらの厄介な可変スコープの問題の1つに$ .postを使用しています。フォームを送信する前に、まずユーザーがコンテンツを編集したかどうか確認します。ユーザーがいない場合はfalseを返します。
私はStackoverflow上でさまざまな例を見てきました。これを行う一般的な方法は、その関数内でコールバックを処理する関数とコールバック関数を作成することです。私の問題は、以下のgetReturnedを呼び出すと、コールバックが実装されないことです(フォームが送信され、アラートを試したのでこれを知っています)。 Btw、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
);
コールバック内でアラートをテストしていたとき、リターンステートメントの前にアラートがありましたか? @Arielは正しいようだが、コールバックはまだ呼び出されるはずです。 – Lycha