Javascript.RU

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

Вызов функции вне html объекта
Всем ночи доброй.
Пишу функцию меню, нечто похожее на выпадающие меню во всех программах (например вашем браузере). Суть простая, тыкнули на пункт меню, открылся children. Тыкнули на область вне элемента, на который вызвали функцию, всё вернулось в исходное состояние.

Возможно объяснил неочень, но легко понять, если потыкать меню в браузере)))

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

Тоесть проще говоря нужно взять область элемента "body" и вырезать из неё элемент, пусть будет "div#menu". Пока работаем с "div#menu", работает плагин, когда кликаем вне "div#menu", плагин возвращается в исходное состояние, как буд-то страниу обновили...
Ответить с цитированием
  #3 (permalink)  
Старый 03.10.2010, 01:07
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

каждый раз при открытии меню делать:
$(document).one("click", close_menu)
Ответить с цитированием
  #4 (permalink)  
Старый 03.10.2010, 01:16
Интересующийся
Отправить личное сообщение для arwprod Посмотреть профиль Найти все сообщения от arwprod
 
Регистрация: 11.09.2010
Сообщений: 20

Octane, собственно зачем? Сейчас получается, что при клике на меню, мы открываем вложенный элемент, а следующей строкой закрываем его...
Ответить с цитированием
  #5 (permalink)  
Старый 03.10.2010, 01:46
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Что непонятного? Открыли меню, повесили обработчик для закрытия. Или меню многоуровневое? Тогда повесьте постоянный обработчик на документ и проверяйте event.target
Ответить с цитированием
  #6 (permalink)  
Старый 03.10.2010, 01:49
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

Сообщение от arwprod Посмотреть сообщение
Octane, собственно зачем? Сейчас получается, что при клике на меню, мы открываем вложенный элемент, а следующей строкой закрываем его...
На менюшке всплытие отменить и дело в шляпе.)
Ответить с цитированием
  #7 (permalink)  
Старый 03.10.2010, 01:59
Интересующийся
Отправить личное сообщение для arwprod Посмотреть профиль Найти все сообщения от arwprod
 
Регистрация: 11.09.2010
Сообщений: 20

Aetae, спасибо )
Octane, и вам) Обрабатывать страницу при каждом действии пользователя, по-моему не очень, а вешать обработчик на одноуровневое меню - вполне.
Ответить с цитированием
  #8 (permalink)  
Старый 03.10.2010, 02:05
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Если меню должно закрываться по клику на странице, то в любом случае будет обработчик события click на document или другом общем для всех элементов узле (html, body, …), не понятно к чему вы сказали:
Сообщение от arwprod
Обрабатывать страницу при каждом действии пользователя, по-моему не очень, а вешать обработчик на одноуровневое меню - вполне.
Видимо еще не поняли, что нужно сделать.
Ответить с цитированием
  #9 (permalink)  
Старый 03.10.2010, 02:07
Интересующийся
Отправить личное сообщение для arwprod Посмотреть профиль Найти все сообщения от arwprod
 
Регистрация: 11.09.2010
Сообщений: 20

Aetae, а кросс-браузерного варианта для отмены всплытия от нижнего элемента к верхнему нету? =\
Ответить с цитированием
  #10 (permalink)  
Старый 03.10.2010, 02:11
Интересующийся
Отправить личное сообщение для arwprod Посмотреть профиль Найти все сообщения от arwprod
 
Регистрация: 11.09.2010
Сообщений: 20

Сообщение от Octane Посмотреть сообщение
Если меню должно закрываться по клику на странице, то в любом случае будет обработчик события click на document или другом общем для всех элементов узле (html, body, …), не понятно к чему вы сказали:
Видимо еще не поняли, что нужно сделать.
дело в том, если мы открываем меню кликом, то оно у нас тут же закрывается, т.к. наше меню является частью document.

На самом деле нагородить можно всё что угодно, но пока что хотелось бы найти способ вырезать это самое меню из document и один раз вызвать функцию "close_menu", при клике на полученную область в document. И при этом чтобы плагин выключился и не работал, пока мы опять не ткнемся мышкой в меню...

Последний раз редактировалось arwprod, 03.10.2010 в 02:17.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функции, находящейся в другой функции 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