jquery: eq () не работает с переменной (правильный синтаксис) в функции успеха ajax - PullRequest
0 голосов
/ 11 сентября 2011

Я пытаюсь заполнить 3 деления, используя этот код

                        for(var i = 0; i<3; i++){ 
                        $.ajax({
                                        type: "post",
                                        url: "/cake/orders/calendar/", 
                                        data: postData[i],
                                        success: function(response) { $(".ajaxCell:eq("+ i +")").html(response);},

                        });
                        }

Кажется, что все в порядке, переменные установлены, ответ получен ... и работает с: eq (0) ... или 1или 2 Но я не могу заставить его работать с переменной.

Я что-то упустил?

1 Ответ

2 голосов
/ 11 сентября 2011

Вы фиксируете переменную, а не значение переменной в каждой итерации цикла. Когда запрос возвращается, он использует значение переменной в то время, когда запрос возвращается, а не когда запрос был выполнен. Вызовите функцию, которая выполняет ajax-запрос с индексом в качестве аргумента, чтобы в этом вызове функции было зафиксировано значение.

for(var i = 0; i<3; i++){
   doRequest(i);
}

function doRequest(i) {
    var selector = ".ajaxCell:eq("+ i +")";
    $.ajax({
             type: "post",
             url: "/cake/orders/calendar/", 
             data: postData[i],
             success: function(response) { $(selector).html(response);},
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...