jquery ajax()async 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:来自file.PHP的false数据只在最后一个div,所以id 9
但现在有async:false – 所以数据在每个div都是好的

但是如果我想要在ajax加载时点击它不起作用(只有在完成所有ajax-es之后)

怎么解决这个问题? (也许是假的是我使用ajax,我可以使用getJSON等)

谢谢帮忙

解决方法

如果您希望用户在ajax调用运行时能够使用该界面,那么您应该将异步更改为true. James Allardice也注意到,在这种情况下,您需要使用javascript闭包来保留原始ID的值,以便在返回ajax调用时.有关javascript关闭的更多信息,请查看 how-do-javascript-closures-work,这是一个很好的问题,在这里stackoverflow.
for(id = 1; id < 10; id++){
    $(".div").append("<div id='" + id + "'></div>");

    (function(id) {
        $.ajax({
            url: "file.PHP",data: "a=" + id,async: true,success: function(data) {
                $("#"+ id).html(data);
            }
        });
     }(id));
}

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: &lt;span id=&quot...
jQuery 添加水印 &lt;script src=&quot;../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...