我有一个画布外菜单 ( ),当单击或按下#mobile-menu
按钮/触发器 ( ) 等时会打开它。.mobile-menu-toggle
菜单在键盘按下时打开正常,但它不在菜单内聚焦,而是焦点在文档流中的下一个元素上 - 菜单实际上位于文档中的“触发器”之前。
所以我正在寻找一种方法来在它打开时在画布菜单中设置焦点。
我已经尝试了很多变体,但没有任何反应,焦点仍然是下一个元素,而不是我指定的元素:
$(document).on("keyup",".mobile-menu-toggle",function(e) {
if (e.which == 13) {
$("#mobile-menu ul").focus();
}
});
这是 html 的简化版本:
<nav id="mobile-menu" aria-label="Main Mobile Navigation">
<div class="content">
<a href="#" aria-label="Mobile Homepage Link">... LOGO IMG ...</a>
<span class="heading">Navigation</span>
<ul class="page-navigation">
... NAV LINKS ...
</ul>
</div>
</nav>
<div id="mobile-nav-trigger">
<button class="mobile-menu-toggle" aria-label="Open Menu"></button>
</div>
我还发现,如果我尝试在移动菜单中的任何位置添加 tabindex,触发器将不再在按键上打开它。
我怎样才能使它在触发器打开菜单时,焦点在 #mobile-menu 元素内?