Присоединение динамических переменных к функции обратного вызова ajax - PullRequest
1 голос
/ 05 августа 2011

У меня есть цикл, который отправляет запросы AJAX.Я хочу включить индекс цикла в мою функцию обратного вызова ajax:

for (i=0;i<10;i++) {
    $.ajax({
        data: "index="+i
        success: function (data) {
            //I want to be able to see the variable (i) here
            //since the request is async, it returns the last index on all
            $("#div"+i).append(data);
        }
    })
}

Ответы [ 3 ]

2 голосов
/ 05 августа 2011

Вы должны будете завернуть это в закрытие. Это должно сделать это:

for (i=0;i<10;i++) {
    (function(i) {
        $.ajax({
            data: "index="+i
            success: function (data) {
                //I want to be able to see the variable (i) here
                //since the request is async, it returns the last index on all
                $("#div"+i).append(data);
            }
        })
    })(i);
}
1 голос
/ 05 августа 2011

Вы должны создать замыкание вокруг вашего ajax-запроса, чтобы сохранить значение i как локальное для функции обратного вызова запроса:

for (i=0;i<10;i++) {
    (function(i) {
        $.ajax({ /* ... */ });
    })(i);
}
0 голосов
/ 05 августа 2011

Вы можете использовать data для возврата параметра индекса, а также остальных данных.

1: REST OF DATA HERE

Просто удалить индекс из строки данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...