Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 04.10.2010, 03:01
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от arwprod
да вот если зохочется внести форму в какой-то пункт меню, то трындец)))
И что произойдет?
Ответить с цитированием
  #22 (permalink)  
Старый 04.10.2010, 21:21
Интересующийся
Отправить личное сообщение для arwprod Посмотреть профиль Найти все сообщения от arwprod
 
Регистрация: 11.09.2010
Сообщений: 20

Сообщение от Octane Посмотреть сообщение
И что произойдет?
меню закроется, а так ничего)

Собственно говоря реализаций море, самого наработок много лежит. Но задача сейчас другая, определить элемент на который вызывается функция '<ul id="menu">'. Пока работаем с ним, открываются вкладки меню: ссылки, формы, текстовые блоки, картинки, грузится ajax в каком-нибудь другом блоке, в общем всё, что угодно.
Как-только кликнули куда-нибудь вне блока нашего меню, меню сбрасывается на первоначальный вид.

Меню могут вызываться как угодно, а закрываться только при клике вне меню. Меню может быть неограниченной вложенности, точнее не нужен способ, который будет независим от этого... Вот как-то так...

Последний раз редактировалось arwprod, 04.10.2010 в 21:27.
Ответить с цитированием
  #23 (permalink)  
Старый 04.10.2010, 22:45
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сразу все подробности поведения меню конечно трудно было описать… остается проверять event.target и его родителей.
Ответить с цитированием
  #24 (permalink)  
Старый 04.10.2010, 23:44
Интересующийся
Отправить личное сообщение для arwprod Посмотреть профиль Найти все сообщения от arwprod
 
Регистрация: 11.09.2010
Сообщений: 20

Octane, прошу прощения, на счет "клика" внутри меню, моё упущение.

$('ul.menu').menu({/* config */});

$("body").click(function(event) {
	if(!$(event.target).parents('ul').hasClass('menu')){
		$('ul.menu').menu({/* config */}, 'destroy');
	}
});


Хотя, как мне кажется, это не лучший вараинт)
Ответить с цитированием
  #25 (permalink)  
Старый 04.10.2010, 23:58
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Ну можно попробовать подкладывать под меню div {position: fixed; top: 0; right: 0; bottom: 0; left: 0; background: url(empty.gif); } с прозрачным фоном и по клику на него скрывать меню, если так не хочется вешать обработчик на body или document.
Ответить с цитированием
  #26 (permalink)  
Старый 05.10.2010, 00:14
Интересующийся
Отправить личное сообщение для arwprod Посмотреть профиль Найти все сообщения от arwprod
 
Регистрация: 11.09.2010
Сообщений: 20

Octane

$('div#cl').click(function(event) {
    $('ul.menu').menu({/* config */}, 'destroy');
});


'div#cl' положил после <body>. В таком варианте не работает, если мы тыкаем на определенный элемент в html документе, ну, что в принципе логично... Если ограничиваться кликами по пустой области в документе, то конечно вариант намного лучше, потому что каждый раз не делаем проверок.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции, находящейся в другой функции ZneP Events/DOM/Window 6 24.08.2010 18:45
непонятный вызов функции hedgi Общие вопросы Javascript 2 05.08.2010 11:55
вызов функции из функции sharp_007 Общие вопросы Javascript 2 03.04.2010 21:13
Вызов функции из другой функции.. ?? glutton Общие вопросы Javascript 3 21.08.2009 22:33
вызов функции, из JS генерируемого на сервере subaru AJAX и COMET 1 12.07.2008 13:44