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

回到顶部