Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Передача переменной в функцию (https://javascript.ru/forum/misc/40890-peredacha-peremennojj-v-funkciyu.html)

jankovsky 23.08.2013 13:30

Передача переменной в функцию
 
Здравствуйте Господа!
Столкнулся с проблемой следующего рода:

Такая задача: на странице имеются много слайдеров и я захотел в цикле их все сразу инициализировать. Выглядит следующим образом:
for (i=0; i < 10; i++){
                window['nivoSlider' + i] = new nivo.slider('#slider' + (i+1), {
                    transitions: ['cube'],
                    autoplay: false,
                    delay: 0,
                    onTransitionEnd: function(){isCheck(window[nivoSlider' + i + '])
                });
}

проблема в том, что когда я пытаюсь передать переменную i в метод объекта "onTransitionEnd", передача переменной проходит, но значение переменной "9", т.к. эта функция срабатывает позже чем происходят все итерации цикла. Как сделать так, что бы туда передавалось значение i при каждой итерации?
Что бы в конце концов получилось onTransitionEnd: function(){isCheck(window.nivoSlider0]) - для первого объекта, потом вместо 0 будет 1 для второго и т.д. Уже что только не пробовал...

ksa 23.08.2013 15:27

Цитата:

Сообщение от jankovsky
Как сделать так, что бы туда передавалось значение i при каждой итерации?

Как вриант

onTransitionEnd: (function (N) {
	return function(){isCheck(window[nivoSlider' + N + '])
})(i)

jankovsky 26.08.2013 07:30

Спасибо! Попробовал. Вроде работает... но как это работает я так и не понял :)

рони 26.08.2013 08:46

jankovsky,
Пример ошибочного использования

jankovsky 26.08.2013 18:58

Класс! Спасибо!


Часовой пояс GMT +3, время: 01:26.