Вы можете остановить меню от закрытия после того, как конкретный элемент выбран путем вызова mdc-list-item
на mdc-list-item
событии щелчка , когда целевое событие имеет определенный класс , назначенный (поэтому меню переключается открыто и закрыто с помощью кнопки только). Вам нужно будет добавить дополнительный код для обработки события щелчка элемента списка, поскольку это предотвращает нормальную обработку кликов mdc.
JS:
const options = document.querySelectorAll('.mdc-list-item');
//Prevent menu close when option with 'prevent-menu-close' class clicked
for (let option of options) {
option.addEventListener('click', (event) => {
let prevent = event.target.classList.contains('prevent-menu-close');
if(prevent){
event.stopPropagation();
// handle 'prevent-menu-close' list item click event
}
});
}
HTML:
<div id="demo-menu" class="mdc-menu-surface--anchor">
<button id="menu-button">Open Menu</button>
<div class="mdc-menu mdc-menu-surface" tabindex="-1">
<ul class="mdc-list" role="menu" aria-hidden="true" aria-orientation="vertical">
<li class="mdc-list-item prevent-menu-close" role="menuitem">
<span class="mdc-list-item__text">Prevent Close</span>
</li>
<li class="mdc-list-item" role="menuitem">
<span class="mdc-list-item__text">Another Menu Item</span>
</li>
</ul>
</div>
</div>