javascript - for 循环内的异步 $.post

标签 javascript jquery post

Possible Duplicate:
Javascript infamous Loop problem?

我在尝试访问 $.post 内的变量时遇到问题功能。

变量的值a函数内部始终相同:7。但在它之外,它会按照我的意愿增加。

为什么会发生这种情况?我怎样才能为 $.post 做一个循环功能?

for(var a=0; a<7; a++){
    console.log(a); /* increasing value */

    $.post("http://"+ document.domain + "/posts/user/xxxxx",
        function(departments){
        console.log(a);  /*value of 7*/

    });
}

谢谢。

最佳答案

要么为每个 for 迭代提供其自己的范围,要么使用 $.ajaxcontext 选项。

for(var a=0; a<7; a++){
    (function(a){
        console.log(a); /* increasing value */

        $.post("http://"+ document.domain + "/posts/user/xxxxx",
            function(departments){
            console.log(a);  /*value of 7*/

        });
    })(a);
}

$.ajax...

for(var a=0; a<7; a++){
    console.log(a); /* increasing value */

    $.ajax({
        url: "http://"+ document.domain + "/posts/user/xxxxx",
        type: "POST",
        context: a,
        success: function(departments){
            console.log(this);  /*value of 7*/    
        }
    });
}

关于javascript - for 循环内的异步 $.post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13705879/

相关文章:

javascript - 从 Array React JS 创建列表

javascript - 更改另一个html页面中的div

javascript - 在表中添加新标签

javascript - 使用 PHP5 为 POST 请求传输字节

php - 将 PHP 中的 $_POST 变量传递给由 exec() 函数运行的 C++ 程序

php - PHP:如何在<form name =“form1”/>中获取名称值

javascript - 在 Javascript 中具有自调用函数的范围

jquery - 从函数内部获取索引

javascript - JQuery 追加在 JQuery 单击函数中不起作用

javascript - 数据表因行跨度而失败