javascript - 移出鼠标后隐藏另一个元素中的子菜单
问题描述
我制作了一个子菜单列表,当用户将鼠标悬停在li
列表上时使用 jquery 显示/隐藏,每个li
显示一个单独的元素。现在我遇到了 jQuery 代码的问题,当鼠标离开时,它隐藏了元素并且无法检测到该元素上的悬停事件。
问题是,当切换到另一个列表菜单项并离开元素块时,我可以隐藏它。但我需要它继续显示子菜单,以防鼠标悬停在它上面。
这是代码:
$(".left-nav-list-view nav ul li").mouseenter(function () {
clearMenuFlyout();
if ($(this).data('has-submenu')) {
var submenu_id = $(this).children('a').data('menu-id');
$(".flyOut-nav-container").append($("[id=" + submenu_id + "]")).position({
my: "left+1 top+0",
at: "right top",
of: this
});
}
}).on("mouseleave", function () {
});
function clearMenuFlyout(){
$(".flyout-temp-container").append($(".flyOut-nav-container").children());
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="side-nav-container flex-fixed">
<nav class="left-nav-view collapsed" role="navigation">
<div class="app-logo">
<div class="burger-menu">
<span class="burger-menu-icon"></span>
</div>
</div>
<div class="left-nav-list-view">
<nav>
<ul>
<li><a href="#"><span>Dashboard</span></a></li>
<li id="AccountingMenu" data-has-submenu="true"><a data-menu-id="AccountingMenuItems" href="#"><span>Accounting</span><i class="list-in fa fa-chevron-right"></i></a></li>
<li id="InventoryMenu" data-has-submenu="true"><a data-menu-id="InventoryMenuItems" href="#"><span>Inventory</span><i class="list-in fa fa-chevron-right"></i></a></li>
</ul>
</nav>
</div>
</nav>
</div>
基本上clearFlyout
函数需要一个已经存在的菜单元素并将其扔到另一个 div。.flyout-temp-container
默认隐藏
解决方案
推荐阅读
- javascript - Cookiebot Cookie 同意脚本
- vba - VBA昏暗长投错误6
- ruby-on-rails - 当还定义了格式时,如何接受参数的 nil 值?
- haskell - 如何将 Persistent 的 SqlBackend 与自定义 monad “组合”?
- linux-kernel - 如何在 Linux 中收集 /proc/pid/pagemap 的所有更改
- javascript - 滚动到顶部脚本在 Bootstrap 4 中不起作用
- python - 如何搜索值是否在数据框中
- reactjs - React Apollo 从状态动态创建查询
- c# - 使用列表框选择启用/禁用图形系列
- google-app-engine - 谷歌数据存储创建/删除索引的成本是多少