我做一個Ajax調用JSONP,這是工作的罰款。這個回調函數改變了變量的值「myVaraible」。在調用之後,還有一些if-else邏輯對「myVaraible」的值起作用。
下面是代碼:
<script>
function myfunction() {
$.ajax({
url: myURL,
dataType: "jsonp",
jsonp : "jsonp",
async: false,
jsonpCallback: "jsonpCallbackFn"
});
}
function jsonpCallbackFn(mydata) {
alert("inside jsonpCallbackFn");
if(something) {
// change value of a variable "myVariable";
}
}
$(document).ready(function() {
$("#preview_button").mouseover(function() {
myfunction();
alert("after myfunction");
// do some if-else logic based upon the value of myVariable which is updated by the call to myfunction()
});
});
</script>
問題:
AJAX調用保持 '未決',則控制移動到的if-else塊(對舊有效地執行/陳舊myVariable的價值)。然後ajax調用完成。總之,從2個alert
箱,alert("after myfunction");
先執行然後alert("inside jsonpCallbackFn");
正如你所看到的,我已經設置async: false,
,但看起來像預期不工作。誰能告訴我我做錯了什麼?另外,我不確定是否已正確解釋了整個方案,請讓我知道是否需要更多信息。
非常感謝。
RTFM - http://api.jquery.com/jQuery.ajax/ – iambriansreed