Помощник
|
Проблема с закрытием вертикального меню |
WebJunior_mw
|
Сообщение
#1
|
||
|
|
||
|
|||
WebJunior_mw
|
Сообщение
#2
|
|
Спасибо. Разберусь как нибудь сам. Прошу тему удалить.
|
|
|
ixman |
25.12.2017, 13:18;
Ответить: ixman
Сообщение
#3
|
|
[mention]Разгильдяев, а что сразу истерика началась? Никто не помог, либо времени нет, либо тот кто может, ещё не видел тему.
Во-первых ваш код можно сократить, если не ошибаюсь
Так попробуйте в качестве селектора указать body для закрытия на любую точку. И слишком сложно реализовано у вас. Можно в разы короче и вообще чисто на css. Сообщение отредактировал Ixman - 25.12.2017, 13:15 |
|
|
WebJunior_mw
|
Сообщение
#4
|
|
Ixman, Это не истерика. Просто не приятно. Мою тему с таким успехом могли увидеть через год) Только какой потом смысл в этих ответах? Я конечно понимаю, что никто не обязан отвечать, но когда создаёшь тему рассчитываешь на помощь. Ну по крайней мере теперь буду знать, что на быстрые ответы рассчитывать не стоит. И создавать тему только если в других источниках не нашлось нужной мне информации.
И слишком сложно реализовано у вас То, что слишком сложно реализовано это я уже понял. Телодвижений много. И событие нужно вешать только на документ и потом отслеживать по каким элементам был клик. Два события будут конфликтовать между собой. В любом случаи спасибо, что отписались. Сообщение отредактировал Разгильдяев - 25.12.2017, 13:52 |
|
|
ixman |
25.12.2017, 15:22;
Ответить: ixman
Сообщение
#5
|
|
[mention]Разгильдяев, все рассчитывают на быстрый ответ. Тут как повезёт.
|
|
|
fedornabilkin |
25.12.2017, 15:59;
Ответить: fedornabilkin
Сообщение
#6
|
|
Есть такое понятие, как bubbling (всплытие). Это значит, что событие всплывает от целевого элемента вплоть до document.
Поэтому обработчик, который установлен на document, всегда скрывает меню, а чтобы не было конфликтов, необходимо остановить всплытие в обработчике .top-profile-control Сделать это можно, добавив после всего:
Применять event.stopPropagation() необходимо очень аккуратно, потому что невозможно будет отследить клики (в данном случае) по меню из обработчика, который установлен выше. Почему бы не добавить правила стилей в is-visible и добавлять/убирать только этот класс? |
|
|
WebJunior_mw
|
Сообщение
#7
|
|
fedornabilkin, Всплытие тут не причём. Всё на много проще. Событие было повешено на top-profile-control и на document. Но ведь данный див является частью document'a. При клике срабатывают два события одно перебивает другое. Поэтому событие нужно вешать только на document. При клике отслеживается элемент по которому был клик. Если это top-profile-control(в моём случаи) то тогда делаем видимым top-profile-menu при повторном клике по top-profile-control меню скрывается. Клик по самой менюшке не учитывается при клике по произвольной части страницы меню только скрывается.
Я с самого начала протупил. Идея вешать два события изначально была плохой. Сообщение отредактировал Разгильдяев - 25.12.2017, 22:43 |
|
|
fedornabilkin |
26.12.2017, 10:24;
Ответить: fedornabilkin
Сообщение
#8
|
|
|
Если всплытие не причем, тогда следует ознакомиться со всплытием https://learn.javascript.ru/event-bubbling
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Проблема с админкой | 5 | Prok | 2315 | 29.7.2019, 20:04 автор: dvakarandasha |
|
Проблема с таблицей, которая выводится через скрипт | 7 | vanchester | 1335 | 15.2.2019, 19:06 автор: Artos_mw |
|
Перенести меню | 1 | Викторио_mw | 1452 | 28.8.2018, 0:10 автор: TimurR |
|
Проблема в тегах при сохранении контента | 1 | Kord18 | 1403 | 13.3.2018, 18:19 автор: Evgeniy3200 |
|
Проблема вёрстки адаптивной страницы на divах | 28 | master-vek | 4712 | 8.2.2018, 19:29 автор: master-vek |
Текстовая версия | Сейчас: 28.3.2024, 20:48 |