繁体   English   中英

单击第一个菜单项后防止 MDC 菜单关闭

[英]Prevent MDC Menu from closing after clicking first menu item

我们正在使用 MDC 菜单组件。 我正在寻找一种在单击菜单中的第一项时不关闭菜单的方法。

我尝试将一个类应用于 mdc-list-item 并将光标指定为自动,但它不起作用。

.menu-do-not-close {
   cursor: auto !important;
}

下面是示例小提琴

https://jsfiddle.net/phani25485/Lt6q2gxa/2/

您能否就如何实现这一目标提供一些指导。

当事件目标具有指定的特定类时,您可以通过在mdc-list-item单击事件上调用event.stopPropagation()来阻止菜单在选择特定项目后关闭。 您将需要添加一些额外的代码来处理列表项单击事件,因为这会阻止正常的MDC 菜单单击处理。

 const menu = mdc.menu.MDCMenu.attachTo(document.querySelector('.mdc-menu')); document.querySelector('.mdc-button').addEventListener('click', () => { menu.open = !menu.open; }); //Prevent menu close when option with 'prevent-menu-close' class clicked const options = document.querySelectorAll('.mdc-list-item'); for (let option of options) { option.addEventListener('click', (event) => { let prevent = event.currentTarget.classList.contains('prevent-menu-close'); if (prevent) { event.stopPropagation(); // handle 'prevent-menu-close' list item click event } }); }
 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Material Select Field</title> <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700"> <link href="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.css" rel="stylesheet"> <script src="https://unpkg.com/material-components-web@latest/dist/material-components-web.min.js"></script> </head> <body> <div class="mdc-menu-surface--anchor"> <button class="mdc-button"> <span class="mdc-button__label">Open Menu</span> </button> <div class="mdc-menu mdc-menu-surface"> <ul class="mdc-list" role="menu" aria-hidden="true" aria-orientation="vertical" tabindex="-1"> <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> </body> </html>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM