发生了一些我不知道为什么会发生的事情。我有这 3 个功能:
app.progress();
app.success();
app.normal();
这三个都更改了我的应用程序中的状态 block 。我的其他函数之一中有这个 $.post
,比方说:
app.set : function() {
...
}
在我的 set
函数中,我想像这样更新状态 block :
app.set : function() {
app.progress();
$.post('ajax.php', function(){
// do stuffs
}).done({function(){
app.success();
setTimeout(app.normal(), '2000');
})
}
但不知何故,我看不到 app.success
,它跳到 app.normal
,当我删除 app.normal
我可以看到app.success
。
这是为什么?
最佳答案
您立即调用 app.normal
,因为这就是您将括号添加到函数时发生的情况,请更改此:
setTimeout(app.normal(), '2000');
至
setTimeout(app.normal, 2000);
引用该函数而不是调用它。
关于javascript - Ajax 调用完成后运行函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16305914/