Цитата:
|
Цитата:
Собственно говоря реализаций море, самого наработок много лежит. Но задача сейчас другая, определить элемент на который вызывается функция '<ul id="menu">'. Пока работаем с ним, открываются вкладки меню: ссылки, формы, текстовые блоки, картинки, грузится ajax в каком-нибудь другом блоке, в общем всё, что угодно. Как-только кликнули куда-нибудь вне блока нашего меню, меню сбрасывается на первоначальный вид. Меню могут вызываться как угодно, а закрываться только при клике вне меню. Меню может быть неограниченной вложенности, точнее не нужен способ, который будет независим от этого... Вот как-то так... |
Сразу все подробности поведения меню конечно трудно было описать… остается проверять event.target и его родителей.
|
Octane, прошу прощения, на счет "клика" внутри меню, моё упущение.
$('ul.menu').menu({/* config */}); $("body").click(function(event) { if(!$(event.target).parents('ul').hasClass('menu')){ $('ul.menu').menu({/* config */}, 'destroy'); } }); Хотя, как мне кажется, это не лучший вараинт) |
Ну можно попробовать подкладывать под меню
div {position: fixed; top: 0; right: 0; bottom: 0; left: 0; background: url(empty.gif); } с прозрачным фоном и по клику на него скрывать меню, если так не хочется вешать обработчик на body или document. |
Octane
$('div#cl').click(function(event) { $('ul.menu').menu({/* config */}, 'destroy'); }); 'div#cl' положил после <body>. В таком варианте не работает, если мы тыкаем на определенный элемент в html документе, ну, что в принципе логично... Если ограничиваться кликами по пустой области в документе, то конечно вариант намного лучше, потому что каждый раз не делаем проверок. |
Часовой пояс GMT +3, время: 16:59. |