我已经在网站上搜索过如何等待ajax功能完成后我找到了这个解决方案:
function next() {
$.when(checksign()).done(function () {
if (uf == 1) {
$("#usrdiv").css("display", "none");
$("#pswdiv").css("display", "inline");
}
});
}
function checksign() {
$.ajax({
url: "checkuser.php",
data: {
user: u
},
method: "POST"
}).done(...);
}
但它仍然无效,它不会等待ajax完成但是直接执行done()中的函数
答案 0 :(得分:3)
这是因为checksign
没有返回您需要在done
函数上链接的承诺。
您不需要$.when
包装器来承担单一承诺
function next() {
checksign().done(function(data) {
if (uf == 1) {
$("#usrdiv").css("display", "none");
$("#pswdiv").css("display", "inline");
}
});
}
function checksign() {
return $.ajax({
url: "checkuser.php",
data: {
user: u
},
method: "POST"
}).done(...);
}