0

我正在使用迭代,并且在 AJAX 的完整事件中,我正在尝试使用迭代变量 i。

但在所有迭代中它总是等于 4?为什么是4?我预计是 2,然后是 3,但收到了 4。

for (i=2; i<=3; i++) {

    $.ajax({
        url: "<?php echo $this->createUrl('ajax/GetData') ?>",
        dataType: "html",
        type: "POST",
        cache: false,
        data: {
            "country":$('[name=country]').val(),
            "currency":$('[name=currency]').val(),
            "system_id":i
        },
        success: function (data, textStatus) {

            addEventClick();
        },
        complete: function() {

            if (i-1 == 3) {
                $('[name=data_input]').addClass('hidden');
            }
        }
    });
}
4

1 回答 1

1

success并且complate都是在异步 ajax 请求完成并且此时 for 循环已经完成时调用的回调函数。

您可以让您的响应返回该system_id值,然后在您的success处理程序中使用它;

success: function (data, textStatus) {
  addEventClick();

  if (data.system_id == 2) {
    $('[name=data_input]').addClass('hidden');
  }
}
于 2013-02-21T08:05:20.113 回答