【发布时间】:2014-01-24 07:58:55
【问题描述】:
我有一些类似这样的代码:
function myFunction(){
$('#somediv').html("Making request...");
$.get('/script.php',
function(data){
if(data.error == 0){
$('#somediv').html("yay!");
} else {
$('#somediv').html("oops!");
window.setTimeout(myFunction(), 2000);
}
},
'json');
}
“哎呀!”从不显示,我相信可能是因为 $.get() 请求被异步调用。我可以让它显示的唯一方法是将它包装在一个 window.setTimeout() 或在它之前运行一个 alert()。
【问题讨论】:
-
"oops" 从不显示???
-
$('#somediv').html("oops!");
-
你确定success方法真的被调用了吗?
-
您将立即重新执行 myfunction,这会立即再次将其 html 设置为“Making Request...”,删除“oops”。请按照代码一行一行开始调试。
-
见@IonicăBizău 的回答。
标签: javascript jquery asynchronous callback