0

我有一个 java 脚本函数,它获取一个表示数字的字符串,循环并在 jquery 函数中返回相同的值(最大值):

            function auto_tag_posts(data) {
                //data is 999
                var p_nr=0;
                for (p_nr=0; p_nr<data; p_nr++) {
                    $.post("./myphp.php", {command: "c"}, function(post_data){
                        //p_nr is 999!!! WHY?
                        alert(p_nr);
                    }); 
                }

解决方法是什么?

问题是在一瞬间发出了 999 个请求,答案及时到来,但 jquery "for" 立即完成。

4

1 回答 1

3

那是因为闭包。改用这些 c0dez

for (p_nr=0; p_nr<data; p_nr++) {
    (function(p_nr) {}
        $.post("./myphp.php", {command: "c"}, function(post_data){
            //p_nr is 999!!! WHY?
            alert(p_nr);
        }); 
    )(p_nr);
}
于 2012-08-02T21:22:37.480 回答