![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| abalich |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 434 Регистрация: 26.2.2007 Где: Воронеж Репутация: нет Всего: нет |
Добрый вечер. Сделал выпадающий список на JS. НУ там все просто. есть DIV которые просто при нажатии увеличивает свою высоту и становиться overflow:auto а был hidden.
Но суть не в этом. Мне нужно что бы при нажатии на любое место в документе, он свернулся. Если я делаю document.onclick = function(){$('#myDiv').hide(); } то при самом нажатии на DIV что бы он развернулся, он сразу же пропадает.. т.е. нажатие на это DIV и есть document.onclick Как это реализуется ? Вот тут не смог разобраться, как сделано http://dropdown-check-list.googlecode.com/...nchecklist.html Но как то же сделано))) -------------------- Мой дядя самых честных "грабил"... |
|||
|
||||
| Evghenusi |
|
|||
![]() майский жук ![]() ![]() Профиль Группа: Участник Сообщений: 506 Регистрация: 3.8.2006 Где: Молдова, Кишинёв Репутация: 1 Всего: 15 |
я бы при клике на странице, проверил от кого пришёл клик, и если это не #myDiv то $('#myDiv').hide();
|
|||
|
||||
| abalich |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 434 Регистрация: 26.2.2007 Где: Воронеж Репутация: нет Всего: нет |
Evghenusi, подскажи как это сделать ? плиз!
-------------------- Мой дядя самых честных "грабил"... |
|||
|
||||
| Sanchezzz |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1670 Регистрация: 19.11.2006 Где: Voronezh Репутация: 3 Всего: 60 |
Если не нужна проверка, что это чистый боди убери условия проверки e.target === document.body | e.target === $html Без проверки на любой элемент щелкаем менющка закрываться будет, тогда тебе придется построить исключения проверки на кликах самой менюшки по выше указанному примеру. Что бы исключить той проблемы которая у тебя описана в вопросе решается проверкой $(this).get(0)!==e.target Это сообщение отредактировал(а) Sanchezzz - 27.9.2012, 07:41 -------------------- Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS. |
|||
|
||||
| Aliance |
|
|||
![]() I ♥ <script> ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6418 Регистрация: 2.8.2004 Где: spb Репутация: 55 Всего: 137 |
Зачем такие костыли? Данная проблема (а вообще говоря это не проблема, а фича) происходит из-за механизма capturing событий. Не буду расписывать что это такое, подробно можно почитать тут: http://forum.vingrad.ru/forum/topic-32350.html (2-5 посты).
Вот рабочий пример: http://jsfiddle.net/Aliance/N3cNR/ |
|||
|
||||
| abalich |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 434 Регистрация: 26.2.2007 Где: Воронеж Репутация: нет Всего: нет |
Sanchezzz, спасибо Не совсем разобрался как сделать что бы при нажатии на любой объект кроме нужного мне DIV
делаю вот так
т.е. хочу что бы при нажатии на любой место на сайте кроме imgselectfontname срабатывала функция Добавлено через 5 минут и 36 секунд Aliance, а если у меня при нажатии на нужный див функция вызывается т.е. стоит onclick=somefunction() как передать e ? Добавлено через 7 минут и 5 секунд Aliance, Все спасибо РАЗОБРАЛСЯ event.stopPropagation() -------------------- Мой дядя самых честных "грабил"... |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |