我做一个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