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 的引用,但将其设置为较低的值几乎不引人注意。
当您离开 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 的引用,但将其设置为较低的值几乎不引人注意。