【发布时间】:2021-07-16 01:29:44
【问题描述】:
当您在 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>
【问题讨论】:
-
在他们的menu demo example 上的工作方式完全相同,因此可能需要深入研究他们的代码。
-
一些好消息。菜单小部件确实有 300 毫秒的延迟。所以,如果你下载了非缩小版的js文件(第二个脚本行,去掉
min.部分,从url保存文件)然后在本地使用那个文件。在文件中,将第 4946 行的延迟(在菜单小部件中,在第 4943 行注明)更改为较低的值,例如 100,然后保存,重新加载页面并检查行为。 -
哇,谢谢。我完全删除了延迟参数,就像一个魅力!如果您想要一些功劳,可以发布答案。
-
我不知道我会完全删除
delay,以避免引起其他可能的麻烦(因为它在一些菜单位置中被引用),但将其设置为非常低的值,例如 10或 25 毫秒几乎不明显。我将添加一个接近我的评论的答案。
标签: javascript jquery jquery-ui