Latey我有一些奇怪的JavaScript行爲有些麻煩。我想要這樣做:奇怪的JavaScript範圍行爲
var lang = null;
function getLang() {
if (browserLanguageIsGerman) {
lang = 'de';
}
else {
lang = 'en';
}
// alert(lang) shows "de"
$('#someID').load(someValidUrl, null,
function(response, status, xhr) {
if(languageSettingsOnFacebookIsGerman) {
lang = 'de';
}
else {
lang = 'en';
}
// alert(lang) show "en"
);
// alert(lang) shows "de"
}
第一個和第二個警報顯示了擴展值1)「de」2)「en」。第三個提示顯示「de」,但不應該是「en」? 第三次提醒後,還會彈出第二次提醒。
有人可以在我心中明顯的錯誤嗎? :)
在此先感謝!
您正在使用AJAX。請記住,AJAX是異步的! – antyrat 2012-07-06 13:00:44
警報只是增加了更多的混淆,因爲它們可以阻止執行線程足夠長的時間,以便ajax響應回來。將ajax與警報調試混合在一起,是扭轉對發生事件的理解的一種肯定方式。 – Esailija 2012-07-06 13:04:02
我們應該找出一些事情,因爲我們每天都會多次得到同樣的問題。 – kapa 2012-07-06 13:05:13