Javascript.RU

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

Генерация функций.
Доброго времени суток, подскажите пожалуйста как решить следующую проблему:
Нужно пройтись в цикле по массиву кнопок и заставить их, при щелчке, менять заголовок окна на свой порядковый номер в массиве.
Очевидный, но не рабочий код:
var Buttons = document.getElementsByClassName("MyButton");
for(i=0; i<Buttons.length; i++)
{
	Buttons[i].onclick = function(){document.title = i};
}

дело в том, что document.title должен быть равен значению переменной i в момент создания функции, а не в момент её выполнения.
Ответить с цитированием
  #2 (permalink)  
Старый 14.12.2012, 15:56
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Может лучше использовать document.getElementsByTagName('title')[0].innerHTML = i;
Ответить с цитированием
  #3 (permalink)  
Старый 14.12.2012, 16:04
Интересующийся
Отправить личное сообщение для Euler Посмотреть профиль Найти все сообщения от Euler
 
Регистрация: 14.12.2012
Сообщений: 15

Сообщение от Ruslan_xDD Посмотреть сообщение
Может лучше использовать document.getElementsByTagName('title')[0].innerHTML = i;
А в чём разница? Опять присвоено будет значение переменной i в момент нажатия на кнопку, а этой переменной к тому времени давно уже не будет.
Ответить с цитированием
  #4 (permalink)  
Старый 14.12.2012, 16:31
Аспирант
Отправить личное сообщение для Sanda Посмотреть профиль Найти все сообщения от Sanda
 
Регистрация: 12.10.2012
Сообщений: 90

Почитайте про замыкания.
buttons[i].onclick = (function(arg) {
  return function () {
    document.title = arg;
  }
}(i));
Ответить с цитированием
  #5 (permalink)  
Старый 14.12.2012, 16:51
Интересующийся
Отправить личное сообщение для Euler Посмотреть профиль Найти все сообщения от Euler
 
Регистрация: 14.12.2012
Сообщений: 15

Sanda, спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение функций Xant1k Общие вопросы Javascript 1 13.04.2012 02:33
GM_toolkit -набор функций для межскриптового взаимодействия KOLANICH Ваши сайты и скрипты 0 26.03.2011 21:27
Как отлаживать события? Или как сделать трассировку вызовов функций? gennad Events/DOM/Window 1 18.08.2010 13:21
Как получить список пользовательских функций объекта window? Маэстро Events/DOM/Window 13 03.07.2010 13:20
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53