Javascript.RU

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

Замыкания и drop-down меню
сначала был так:
function dropDown(){
	menuBody.style.display="block";
	menuState=true;
	var i;

	for(i in menuItems){
		setTimeout(function(){itemDropDown(menuItems[i]);},menuDelay*i);

		//i++;
	}
	//setTimeout(function(){menuBody.style.display="block";},menuDelay*i);
}

работало криво

потом стало так:
function dropDown(){
	menuBody.style.display="block";
	menuState=true;
	var i;
function addItemDropDown(i){setTimeout(function(){itemDropDown(menuItems[i]);},menuDelay*i);}

	for(i in menuItems){
		addItemDropDown(i);
		//i++;
	}
	setTimeout(function(){menuBody.style.display="block";},menuDelay*i);
}

и это таже работает криво!!!
в чём подвох?

Последний раз редактировалось KOLANICH, 21.06.2010 в 11:42.
Ответить с цитированием
  #2 (permalink)  
Старый 21.06.2010, 07:42
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Сделай все нужные переменные глобальными. Ф-ция в setTImeout/setInterval вызывается в контексте window.
Ответить с цитированием
  #3 (permalink)  
Старый 21.06.2010, 08:19
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://javascript.ru/basic/closure#p...-ispolzovaniya
Ответить с цитированием
  #4 (permalink)  
Старый 21.06.2010, 14:12
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

как поправить
с возвращаемой функцией результат такой-же
Ответить с цитированием
  #5 (permalink)  
Старый 21.06.2010, 14:14
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от KOLANICH
как поправить
Там всё написано.
Ответить с цитированием
  #6 (permalink)  
Старый 21.06.2010, 14:39
Аватар для KOLANICH
Профессор
Отправить личное сообщение для KOLANICH Посмотреть профиль Найти все сообщения от KOLANICH
 
Регистрация: 22.11.2008
Сообщений: 277

с возвращаемой функцией результат такой-же
Ответить с цитированием
  #7 (permalink)  
Старый 21.06.2010, 15:05
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Значит плохо прочитали. Тоже могу повторить
Сообщение от Kolyaj
Там всё написано.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу jQuery плагин для создания меню Zeboton jQuery 9 15.09.2014 15:31
анимированное меню на jquery глючит в ie leCadavreExquis jQuery 3 30.12.2009 17:30
Как "переключать" картинки в меню навигации? KirTer Элементы интерфейса 1 22.06.2009 11:49
Событие mouseout при наведении мыши на пункт меню WalterScott Events/DOM/Window 2 12.05.2009 22:05
Ссылка под слоем перекрывает слой Devider Общие вопросы Javascript 7 24.02.2009 23:18