我有问题..
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中,所以这很好
async: false
但是如果我想在通过ajax加载时单击,则无法正常工作(仅在完成所有ajax-es之后)
如何解决这个问题?(也许是错误的,因为我在使用ajax。我可以使用getJSON等。)
谢谢你的帮助
如果希望用户在ajax调用运行时能够使用该界面,则应将更async改为true。James Allardice还指出,在这种情况下,您需要使用javascript闭包来保留id返回ajax调用时的原始值。
async
true
id
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)); }