2015-07-20 111 views
1

我不知道,它是一個錯誤或沒有。看到我的例子:jquery ajax在循環bug

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

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

爲什麼輸出爲2?

+0

刪除附加的 'W' 的數據後'{DATAW: 「ABCD」}'。 –

+0

沒有相關性。僅限數據發佈名稱 – AliN11

+0

這不是一個答案只是一個評論;) –

回答

0

i不會保持它的價值,它會循環並停留在最後一個值(2)。

您可以將您的值封裝在函數中。對於後

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

同一件事:

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

'$ .post'怎麼辦? – AliN11

+0

同樣的東西@ AliN11,你做了一個返回函數的函數。 –