Метод jQuery .trigger () в цикле - PullRequest
       24

Метод jQuery .trigger () в цикле

0 голосов
/ 31 января 2012

У меня есть этот кусок кода:

$(document).on("click", "#breadNavMain", function() {
    for(var i = 0; i < getActiveSlides().length; i++) {
        $("#studentWrapper").trigger("click");
    }
});

Метод getActiveSlides() вернет слайды (в виде массива), активированные в настоящее время для моего приложения.Что важно, так это то, что я получаю количество активных слайдов.Для чего-либо более 1 активного слайда цикл выше не работает.Если у меня есть 3 активных слайда (например), он вызовет метод .trigger() только один раз.В моем обработчике кликов, если я вместо этого использую:

$("#studentWrapper").trigger("click");
$("#studentWrapper").trigger("click");
$("#studentWrapper").trigger("click");

, он будет работать просто отлично.Проблема в том, что я не знаю, сколько раз мне нужно будет вызывать метод .trigger(), поэтому я не могу сделать это вручную.Я хотел назвать это внутри цикла, как я пытался выше.Есть ли способ заставить .trigger() работать внутри цикла?

1 Ответ

1 голос
/ 31 января 2012

На самом деле все должно работать нормально, но я скептически отношусь к тому, что что-то не так в методе getActiveSlides. Может быть после первого клика не вернется правильное количество активных слайдов. Вы можете взять его возвращаемое значение в переменную и затем выполнить свой код. Попробуйте это.

$(document).on("click", "#breadNavMain", function() {
    var activeSlidesLen = getActiveSlides().length;
    for(var i = 0; i < activeSlidesLen; i++) {
        $("#studentWrapper").trigger("click");
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...