Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
zasadadada
43 / 9 / 12
Регистрация: 03.05.2013
Сообщений: 542
1

Не удаётся передать переменную в функцию

24.03.2017, 10:28. Просмотров 180. Ответов 4
Метки нет (Все метки)

Скажите пожалуйста, не могу передать переменную в функцию, что то не то
Javascript
1
2
3
4
5
6
7
8
                    for(var i=0; i < 3; i++){
                        var name = '#' + 'catalog_slider_mini' + i;
                        console.log(name);
                        $(name).click(function(){
                            catalog_slider.goToSlide(i);
                            set_bg(catalog_slider.getCurrentSlide());
                        });
                    }
не работает строчка
Javascript
1
catalog_slider.goToSlide(i);
Если я впишу тутда цифру к примеру 2, всё работает, не проходит переменная, почему так происходит?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2017, 10:28
Ответы с готовыми решениями:

Передать переменную в функцию. Ошибка: ReferenceError: avt is not defined
По клике на кнопку надо выдать различные ответы, в зависимости от того...

Передать переменную из одной функции в другую, не вызывая саму функцию
И так есть 2 функции. В первую функцию func_1 передается перменная q она там...

Как передать переменную окна через текстовую переменную?
Открыл одно окно, потом второе, и хочу передать индетефикатор первого окна во...

Не удаётся в ссылке передать post параметр
Друзья. Уже голову окончательно сломал! По ссылке передаются только числа. но...

Передать переменную
Надо передать переменную из одной функции в другую. Но есть определённая...

4
Padimanskas
Superposition
935 / 595 / 256
Регистрация: 27.10.2013
Сообщений: 2,067
24.03.2017, 11:03 2
Цитата Сообщение от zasadadada Посмотреть сообщение
почему так происходит?
потому что цикл отработает до 2-х и все i в click будут равны 2. Нужно замкнуть i

Javascript
1
2
3
4
5
6
7
8
9
10
for (var i = 0; i < 3; i++) {
  var name = '#' + 'catalog_slider_mini' + i;
  console.log(name);
  (function(i) {
    $(name).click(function() {
      catalog_slider.goToSlide(i);
      set_bg(catalog_slider.getCurrentSlide());
    });
  })(i);
}
1
zasadadada
43 / 9 / 12
Регистрация: 03.05.2013
Сообщений: 542
24.03.2017, 11:08  [ТС] 3
очень не удобно это всё в js, лишний код на ровном месте
0
Padimanskas
Superposition
935 / 595 / 256
Регистрация: 27.10.2013
Сообщений: 2,067
24.03.2017, 11:15 4
Цитата Сообщение от zasadadada Посмотреть сообщение
очень не удобно это всё в js, лишний код на ровном месте
Это касается того случая кода вы привязываете много обработчиков. В JavaScript есть такая вещь как делегирование(в jQuery это метод "on"). Делегирование позволяет привязать всего один обработчик, поэтому вам не понадобится писать никаких циклов и лишних контекстов.
0
zasadadada
43 / 9 / 12
Регистрация: 03.05.2013
Сообщений: 542
24.03.2017, 11:35  [ТС] 5
Вас понял. В моём случае делегирование не пройдёт. На каждый объект своя реакция.
0
24.03.2017, 11:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.03.2017, 11:35

Передать переменную
Необходимо из main.js передать в php переменную &quot;TotalScore&quot; ...

Передать переменную в HTML
Доброго времени суток всем! Поискал в интернете и на форуме, везде предлагают...

Неполучается передать переменную..
Помогите пожалуйста, нашел готовый кусок кода:&lt;input type='button'...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru