javascript - 水平菜单上的选项卡导航,菜单项的下拉菜单,在 focus() 处打开,但当它切换到新项目时,不会关闭
问题描述
使用鼠标,此菜单有效。我的问题是可访问性和键盘导航(Tabbing)。我有一个带有下拉菜单的水平菜单,为了简单起见,这里我只包括了一个。我需要使用此 AEM 生成的 html 结构来获得键盘导航(制表符)。水平导航工作,然后用 jquery with focus(); 我打开了下拉菜单,我可以垂直导航它,但是当它必须退出下拉菜单并聚焦水平菜单的第三项(或前一项)时,下拉菜单不会关闭。我怎么能告诉他这样的事情:当下拉列表的所有元素不再是焦点并且我移动到水平菜单的上一个或下一个第一级项目时,关闭下拉菜单。
使用 .blur() 和 .focusout() 我无法理解。
$(".js-focus-menu-item-a").focus(function() {
$(this).closest("li").find(".js-dropdown-menu").css('display', 'flex');
$(this).closest("li").find(".js-focus-menu-item-a").addClass('activeFocus');
});
<nav class="primary-navigation__nav">
<ul class="list-inline primary-navigation__ul">
<li class="js-focus-menu-item ">
<a class="js-focus-menu-item-a" href="#">
<span>
First Level menu 1
</span>
</a>
</li>
<li class="js-focus-menu-item ">
<a class="js-focus-menu-item-a" href="#">
<span>
Level menu with Dropdown
</span>
</a>
<div tabindex="1" class="primary-navigation__sub js-dropdown-menu">
<ul class="list-unstyled">
<li class="js-dropdown-menu-li">
<a class="js-dropdown-menu-li-a" href="#">
drop-down menu items 1
</a>
</li>
<li class="js-dropdown-menu-li">
<a class="js-dropdown-menu-li-a" href="#">
drop-down menu items 2
</a>
</li>
<li class="js-dropdown-menu-li">
<a class="js-dropdown-menu-li-a" href="#">
drop-down menu items 3
</a>
</li>
</ul>
</div>
</li>
<li class="js-focus-menu-item">
<a class="js-focus-menu-item-a" href="#">
<span>
First Level menu 3
</span>
</a>
</li>
</ul>
</nav>
```HTML
解决方案
推荐阅读
- pdf - 使用 iText7 合并时缺少图像的替代文本
- c++ - 使用向量 A 的位置和方向创建向量 B
- mysql - 如何使用子查询允许多行返回?
- angular - Angular 7:重用角度解析器服务功能
- awk - 使用 sed、awk 或其他在 Linux 命令行中从文本文件生成 csv
- java - 如何使 jar 文件在运行时加载图像
- android - LinearLayout 未显示创建的网格
- android - DocumentContract 上的 ContentResolver 查询 列出所有文件而不考虑选择
- python - Newton-raphson 脚本冻结以尝试获取大量数字
- javascript - Next js 和 Apollo - Cookie 未通过