Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.01.2013, 16:54
Интересующийся
Отправить личное сообщение для Павел Пичужкин Посмотреть профиль Найти все сообщения от Павел Пичужкин
 
Регистрация: 23.02.2011
Сообщений: 13

Переменная в цикле
Здравствуйте! Я делаю гаджет для Windows Sidebar. Что-то вроде календаря. И я хочу чтобы с помошью JS в код добавлялись 6 кнопочек, при нажатии на каждую из которых страница прокручивалась на опеределёный день (за это отвечает функция scrolling). Если я задаю параметр функции вручную, всё работает, НО для экономии места желательно это сделать через цикл, т. к. этот код подгружается с инета. Ниже мой вариант кода, но при нажатии на любую из кнопочек страница вообще уезжает непонятно куда . Я думаю, что во время вызова функции scrolling, в переменной dw стоит какое-то неадекватное число. Кто что может, подскажите, а то я замучался с этой проблемой.
for (dw=0; dw<6; dw++)
{
    var parent = document.getElementsByTagName('body')[0];
    var el = document.createElement('div');
    el.id = 'day';
    el.style.background = '#c53757';
    el.onclick =  function() {scrolling(dw);}
    dw++;
    parent.appendChild(el);
}

При выполнении этого цикла,
Ответить с цитированием
  #2 (permalink)  
Старый 19.01.2013, 17:03
Любитель
Отправить личное сообщение для JsLoveR Посмотреть профиль Найти все сообщения от JsLoveR
 
Регистрация: 16.12.2009
Сообщений: 422

цикл у вас 3 раза проходит, dw лишний раз в теле цикла итерируется

Последний раз редактировалось JsLoveR, 19.01.2013 в 17:06.
Ответить с цитированием
  #3 (permalink)  
Старый 19.01.2013, 17:04
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

в http://learn.javascript.ru/ , или поиск по сайту .3й за последние 3 дня с этим вопросом

Последний раз редактировалось dmitriymar, 19.01.2013 в 17:06.
Ответить с цитированием
  #4 (permalink)  
Старый 19.01.2013, 17:06
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от JsLoveR
цикл у вас 3 раза проходит
а это то при чём?
Сообщение от Павел Пичужкин
el.onclick = function() {scrolling(dw);}
dw всегда будет равно 6
(function(dw){el.onclick =  function() {scrolling(dw);}})(dw);
Ответить с цитированием
  #5 (permalink)  
Старый 19.01.2013, 17:11
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Павел Пичужкин
Почему 3 раза? Там же задано с 0 до 5
Сообщение от Павел Пичужкин
01 for (dw=0; dw<6; dw++)
Сообщение от Павел Пичужкин
08 dw++;
при этом увеличивается на 2 за 1 проход
начните с основ языка -вы переменные объявлять не умеете dw тоже переменная
Ответить с цитированием
  #6 (permalink)  
Старый 19.01.2013, 17:25
Интересующийся
Отправить личное сообщение для Павел Пичужкин Посмотреть профиль Найти все сообщения от Павел Пичужкин
 
Регистрация: 23.02.2011
Сообщений: 13

Подставил ваш код, заработало! Благодарю за помощь! Я только учусь, видимо невнимательно про переменные читал . Можно ещё один вопрос:
el.onclick =  function() {scrolling(1);}
у меня после долгих попыток только так получилось событие сделать. Что же неправильного в записи ниже?
el.onclick = scrolling(1);

В других гаджетах такая запись проходит спокойно.
Ответить с цитированием
  #7 (permalink)  
Старый 19.01.2013, 17:26
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от dmitriymar
Сообщение от Павел Пичужкин
Почему 3 раза? Там же задано с 0 до 5
Чет не вижу этого сообщения. Или это режим телепата?

Сообщение от Павел Пичужкин
Что же неправильного в записи ниже
ставим за именем функции скобки - значит вызываем ее немедленно (в случае с анонимной функцией это аналогично
el.onclick = (function() {scrolling(dw);})();
), вместо того, чтобы присвоить функцию, мы присваиваем результат ее выполнения.

Последний раз редактировалось danik.js, 19.01.2013 в 17:30.
Ответить с цитированием
  #8 (permalink)  
Старый 19.01.2013, 17:47
Интересующийся
Отправить личное сообщение для Павел Пичужкин Посмотреть профиль Найти все сообщения от Павел Пичужкин
 
Регистрация: 23.02.2011
Сообщений: 13

Понятно. Благодарю за разъяснение!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
popup окно в PHP цикле ryobi522 Общие вопросы Javascript 5 10.02.2012 02:18
Переменная после отправки данных lukingnu AJAX и COMET 0 19.03.2011 20:24
Хорошо ли писать var в цикле? балерун Общие вопросы Javascript 24 31.01.2011 11:17
Переменная как значение функции. Jurasmi Общие вопросы Javascript 7 22.04.2010 12:45
Переменная в цикле Snipe Общие вопросы Javascript 2 25.09.2008 17:39