Чтобы избежать закрытия раскрывающегося меню при щелчке внутри него с помощью JavaScript, вы можете реализовать несколько методов. Вот несколько подходов:
-
Event.stopPropagation():
Вы можете использовать методEvent.stopPropagation(), чтобы предотвратить всплывание события вверх по дереву DOM и тем самым предотвратить раскрывающийся список. от закрытия. Вы можете прикрепить прослушиватель событий щелчка к раскрывающемуся меню и вызватьevent.stopPropagation()внутри функции обработчика событий.const dropdownMenu = document.getElementById('dropdown-menu'); dropdownMenu.addEventListener('click', function(event) { event.stopPropagation(); }); -
Event.preventDefault():
Другой способ сделать это — использовать методEvent.preventDefault(), который предотвращает поведение элемента по умолчанию. Вы можете прослушать событие «щелчок» в раскрывающемся списке и предотвратить действие по умолчанию, которое приведет к закрытию раскрывающегося списка.const dropdownMenu = document.getElementById('dropdown-menu'); dropdownMenu.addEventListener('click', function(event) { event.preventDefault(); }); -
Свойство CSS pointer-events:
Вы можете использовать CSS, чтобы отключить события указателя в дочерних элементах раскрывающегося меню. Такой подход не позволяет дочерним элементам получать какие-либо события мыши, эффективно предотвращая закрытие раскрывающегося списка при нажатии внутри..dropdown-menu-item { pointer-events: none; }