Lotus@ 2015-07-20 22:23 采纳率: 100%
浏览 21

jQuery Ajax循环错误

I don't know , its a bug or not. see my examples :

for(i=0;i<2;i++){
  $.ajax({
    url : 'process.php',
    type: "POST",
    data : "abcd",
    success : function(data){
      alert(i);
    }
  })
}

or

for(i=0;i<2;i++){
  $.post("process.php",{dataw:"abcd"},function(data){
    alert(i);
  })
}

why output is 2 ?

  • 写回答

1条回答 默认 最新

  • hurriedly% 2015-07-20 22:27
    关注

    i won't keep its value, it'll loop through and stay at the last value (2).

    You can wrap your value in a function instead.

    for (i = 0; i < 2; i++) {
        $.ajax({
            url: 'process.php',
            type: "POST",
            data: "abcd",
            success: function(value) {
                return function(data) {
                    alert(value);
                }
            }(i)
        })
    }
    

    Same thing for post:

    for (i = 0; i < 2; i++) {
        $.post("process.php", {
                dataw: "abcd"
            },
            function(value) {
                return function(data) {
                    alert(value);
                }
            }(i)
        );
    }
    
    评论

报告相同问题?