jquery ajax()async false

前端之家收集整理的这篇文章主要介绍了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));
}

猜你在找的jQuery相关文章