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 23:23

let a = function (b) {
			document.querySelector(b).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"))
				}
			});
		}
		a('.menu');

а так более правильно ?

рони 09.06.2021 00:19

13Foch,
а если нет элемента?

13Foch 09.06.2021 09:08

Цитата:

Сообщение от рони
а если нет элемента?

да

13Foch 09.06.2021 09:31

и переменные будут в не зоны видимости их не переназначат

рони 09.06.2021 09:41

13Foch,
:-?
document.addEventListener( "DOMContentLoaded" , function() {
const menuToggle = function (selector) {
            const menu = document.querySelector(selector);
            if(!menu) return;
            menu.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"))
                }
            });
        }
menuToggle('.menu');
  });

13Foch 09.06.2021 09:44

понял спасибо


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