在AJAX方法的完整事件中使用变量

时间:2013-02-21 08:01:33

标签: jquery ajax

我正在使用迭代,在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');
            }
        }
    });
}

1 个答案:

答案 0 :(得分:1)

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

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

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

  if (data.system_id == 2) {
    $('[name=data_input]').addClass('hidden');
  }
}