Javascript.RU

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

Меню на javascript, проблемка с созданием обработчика в цикле
Хочу заделать менюшку, при создании пунктов меню сразу создаются обработчики нажатия на каждый пункт, но вместо "запоминания" обработчиками значения "i" на момент создания оных, они берут значение "i" на момент нажатия на пункт, т.е. когда ф-ия построения менюшки уже закончена.
function main_menu()
	  {
	    if(event.type=='click')
		{
	      if(!document.getElementById('menu_frame'))
		  {
	        var menu_frame=document.createElement('div');
	 	    menu_frame.className='menu_frame';
		    menu_frame.id='menu_frame';
			for(i=0;i<5;i++)
			{
			  menu_punkt=document.createElement('span');
			  menu_punkt.className='menu_punkt';
			  menu_punkt.innerHTML='Пункт меню '+i;	
			  menu_frame.onclick=function(){location.href='page'+i+'.html'}
			  menu_frame.appendChild(menu_punkt);			  
			}			
		    document.body.appendChild(menu_frame); 
		  }
		}
	  }

Пример упрощённый, в дальнейшем планируется раздавать обработчикам ссылки на страницы из массива, "i" будет ключом массива (а значит, всем пунктам меню назначится последняя в массиве ссылка), так что просьба не уводить в обходные пути, вариант выбран не случайно.
Ответить с цитированием
  #2 (permalink)  
Старый 03.02.2010, 02:27
Интересующийся
Отправить личное сообщение для cooli0 Посмотреть профиль Найти все сообщения от cooli0
 
Регистрация: 25.01.2010
Сообщений: 20

А случайно menu_frame.onclick не надо заменить на menu_punkt.onclick ?
Ответить с цитированием
  #3 (permalink)  
Старый 03.02.2010, 08:07
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://javascript.ru/basic/closure#p...-ispolzovaniya
Ответить с цитированием
  #4 (permalink)  
Старый 03.02.2010, 09:43
Новичок на форуме
Отправить личное сообщение для Atreides Посмотреть профиль Найти все сообщения от Atreides
 
Регистрация: 02.02.2010
Сообщений: 2

Сообщение от cooli0 Посмотреть сообщение
А случайно menu_frame.onclick не надо заменить на menu_punkt.onclick ?
Да, верно, очепятка присутствует )

Сообщение от Kolyaj Посмотреть сообщение
http://javascript.ru/basic/closure#p...-ispolzovaniya
Благодарю, то что надо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический JavaScript проблемка... andrys2007 Events/DOM/Window 3 06.12.2009 13:40
всплывающее Javascript меню Dekker8 Events/DOM/Window 0 21.11.2008 21:45
Выпадающее меню на css и javascript Jackky Общие вопросы Javascript 3 13.09.2008 18:30
В Mozilla Firefox 3.0 проблемма с Javascript меню artmedia Элементы интерфейса 1 07.09.2008 10:43
Требуется поправить меню на javascript Гость Работа 1 31.07.2008 11:22