Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   подменю при клике на элемент меню, насколько правильно написано (https://javascript.ru/forum/events/82663-podmenyu-pri-klike-na-ehlement-menyu-naskolko-pravilno-napisano.html)

13Foch 08.06.2021 22:10

Цитата:

Сообщение от рони
куда бы его засунуть тут, не подскажите? )))

да тут никуда не всунешь потому что this это .menu а не .menu__item

13Foch 08.06.2021 22:19

Цитата:

Сообщение от ksa
На светофоре стоит Ламборджини... Рядом останавливается Логан.
Водила Логана делает знаки водиле Ламборджини, де есть вопрос к нему... Водила Ламборджини опускает стекло:
- Что хотел?
- Хотел узнать как тачка?
- Нормальная.
- Не ломается?
- Нет. А в чем проблема?
- Да вот смотрю не особо ее народ покупает...

я понимаю мой код для вас глупым кажется )), но спасибо мне полезна любая информация негативная тоже пока катаюсь на логане )

ksa 08.06.2021 22:22

13Foch, просто всему свое место... Так и this используется там, где он нужен.

13Foch 08.06.2021 22:25

Цитата:

Сообщение от ksa
13Foch, просто всему свое место... Так и this используется там, где он нужен.

Понятно

13Foch 08.06.2021 22:34

Цитата:

Сообщение от рони
куда бы его засунуть тут, не подскажите? )))

благодаря вашему вопросу посмотрел как работает target и на этом спасибо раньше не знал

рони 08.06.2021 22:35

13Foch,
:victory:

13Foch 08.06.2021 22:46

let a = document.querySelector(".menu");
		if (a) {
			a.addEventListener("click", function (event) {
				let target = event.target;
				if (target = target.closest(".menu__name")) {
					event.preventDefault();
					let parent = target.parentNode;
					let children = parent.parentNode.children;
					[...children].forEach(el => el.classList[el === parent ? "toggle" : "remove"]("menu__item--active"))
				}
			});
		}


а так нормально писать ? а то вдруг на следующей странице не будет меню этого получиться ошибка

рони 08.06.2021 22:53

Цитата:

Сообщение от 13Foch
а так нормально писать ?

да

рони 08.06.2021 22:59

Цитата:

Сообщение от 13Foch
а то вдруг на следующей странице не будет меню этого получиться ошибка

можно клик не на меню ставить в данном случае а на document, и тогда никаких проверок.
но ваш код более правильный, это приём делегирование, лучше делать на ближайший общий предок и не грузить лишние обработчики.

13Foch 08.06.2021 23:04

понял


Часовой пояс GMT +3, время: 11:39.