03.10.2010, 00:59
|
Интересующийся
|
|
Регистрация: 11.09.2010
Сообщений: 20
|
|
Вызов функции вне html объекта
Всем ночи доброй.
Пишу функцию меню, нечто похожее на выпадающие меню во всех программах (например вашем браузере). Суть простая, тыкнули на пункт меню, открылся children. Тыкнули на область вне элемента, на который вызвали функцию, всё вернулось в исходное состояние.
Возможно объяснил неочень, но легко понять, если потыкать меню в браузере)))
Собственно как грамотно определить саму область вне элемента, пока непонятно, кто-нибудь занимался подобным?
|
|
03.10.2010, 01:04
|
Интересующийся
|
|
Регистрация: 11.09.2010
Сообщений: 20
|
|
Тоесть проще говоря нужно взять область элемента "body" и вырезать из неё элемент, пусть будет "div#menu". Пока работаем с "div#menu", работает плагин, когда кликаем вне "div#menu", плагин возвращается в исходное состояние, как буд-то страниу обновили...
|
|
03.10.2010, 01:07
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
каждый раз при открытии меню делать:
$(document).one("click", close_menu)
|
|
03.10.2010, 01:16
|
Интересующийся
|
|
Регистрация: 11.09.2010
Сообщений: 20
|
|
Octane, собственно зачем? Сейчас получается, что при клике на меню, мы открываем вложенный элемент, а следующей строкой закрываем его...
|
|
03.10.2010, 01:46
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Что непонятного? Открыли меню, повесили обработчик для закрытия. Или меню многоуровневое? Тогда повесьте постоянный обработчик на документ и проверяйте event.target
|
|
03.10.2010, 01:49
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
Сообщение от arwprod
|
Octane, собственно зачем? Сейчас получается, что при клике на меню, мы открываем вложенный элемент, а следующей строкой закрываем его...
|
На менюшке всплытие отменить и дело в шляпе.)
|
|
03.10.2010, 01:59
|
Интересующийся
|
|
Регистрация: 11.09.2010
Сообщений: 20
|
|
Aetae, спасибо )
Octane, и вам) Обрабатывать страницу при каждом действии пользователя, по-моему не очень, а вешать обработчик на одноуровневое меню - вполне.
|
|
03.10.2010, 02:05
|
|
|
Регистрация: 10.07.2008
Сообщений: 3,873
|
|
Если меню должно закрываться по клику на странице, то в любом случае будет обработчик события click на document или другом общем для всех элементов узле (html, body, …), не понятно к чему вы сказали:
Сообщение от arwprod
|
Обрабатывать страницу при каждом действии пользователя, по-моему не очень, а вешать обработчик на одноуровневое меню - вполне.
|
Видимо еще не поняли, что нужно сделать.
|
|
03.10.2010, 02:07
|
Интересующийся
|
|
Регистрация: 11.09.2010
Сообщений: 20
|
|
Aetae, а кросс-браузерного варианта для отмены всплытия от нижнего элемента к верхнему нету? =\
|
|
03.10.2010, 02:11
|
Интересующийся
|
|
Регистрация: 11.09.2010
Сообщений: 20
|
|
Сообщение от Octane
|
Если меню должно закрываться по клику на странице, то в любом случае будет обработчик события click на document или другом общем для всех элементов узле (html, body, …), не понятно к чему вы сказали:
Видимо еще не поняли, что нужно сделать.
|
дело в том, если мы открываем меню кликом, то оно у нас тут же закрывается, т.к. наше меню является частью document.
На самом деле нагородить можно всё что угодно, но пока что хотелось бы найти способ вырезать это самое меню из document и один раз вызвать функцию "close_menu", при клике на полученную область в document. И при этом чтобы плагин выключился и не работал, пока мы опять не ткнемся мышкой в меню...
Последний раз редактировалось arwprod, 03.10.2010 в 02:17.
|
|
|
|