Jquery ui 菜单问题

Jquery ui menu issue

当您离开 jquery 菜单中子菜单的父项时,关闭子菜单会稍有延迟。 有什么方法可以禁用它并立即关闭它?

*知道它是一个 EOL 死库,但我想问一下,以防你们中的任何人记得一些事情!

$(function() {
            $("#menu").menu();
});
#menu{
width:150px;
}
<!DOCTYPE html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" integrity="sha512-uto9mlQzrs59VwILcLiRYeLKPPbS/bT71da/OEBYEwcdNUk8jYIy+D176RYoop1Da+f9mvkYrmj5MCLZWEtQuA==" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" integrity="sha512-aOG0c6nPNzGk+5zjwyJaoRUgCdOrfSDhmMID2u4+OIslr0GjpLKo7Xm0Ao3xmpM4T8AmIouRkqwj1nrdVsLKEQ==" crossorigin="anonymous" />

</head>
<body>
<ul id="menu">
                <li>
                    <div>W/O submenu</div>
                </li>

                 
                <li>
                <div>With submenu</div>
                <ul><li><div>Submenu</div></li></ul>
                    
                </li>

           </ul>
</body>
</html>

菜单小部件确实有 300 毫秒的延迟。

因此,如果您从此处下载非缩小版的 js 文件:

https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js (based on the OP's URL)

然后在本地使用该文件。然后,在文件中,更改第 4946 行的延迟(在菜单小部件中,第 4943 行注明):

4943 var widgetsMenu = $.widget( "ui.menu", {
4944         version: "1.12.1",
4945         defaultElement: "<ul>",
4946         delay: 300,               // THIS delay
4947         options: {

...设置为较低的值,例如 100(或更低),然后保存、重新加载页面并检查行为。

请注意,我 不会 完全删除 delay,因为有对 attribute/property 的引用,但将其设置为较低的值几乎不引人注意。