jQuery ajax()异步false
我有问题..
for(a=1;a<10;a++){ $(".div").append("<div id="+a+"></div>")
$.ajax({
url: "file.php",
data: "a="+a,
type: "POST",
async: false,
success: function(data) {
$("#"+a).html(data);
}
});
}
$("div").click(function(){
alert("it works");
});
问题是:是不是我没有把async: false
来自 file.php的 数据仅放在最后一个div中,所以ID为9,但是现在有async:
false-所以数据在每个div中,所以这很好
但是如果我想在通过ajax加载时单击,则无法正常工作(仅在完成所有ajax-es之后)
如何解决这个问题?(也许是错误的,因为我在使用ajax。我可以使用getJSON等。)
谢谢你的帮助
回答:
如果希望用户在ajax调用运行时能够使用该界面,则应将更async
改为true
。James
Allardice还指出,在这种情况下,您需要使用javascript闭包来保留id
返回ajax调用时的原始值。
for(id = 1; id < 10; id++){ $(".div").append("<div id='" + id + "'></div>");
(function(id) {
$.ajax({
url: "file.php",
data: "a=" + id,
type: "POST",
async: true,
success: function(data) {
$("#"+ id).html(data);
}
});
}(id));
}
以上是 jQuery ajax()异步false 的全部内容, 来源链接: utcz.com/qa/397866.html