我一直在研究一个下拉/弹出菜单,它运行良好,但有一个例外;当您单击链接(或按回车键)打开菜单时,焦点应该设置为下一个可以接收焦点的元素。因此在本例中,单击“菜单 1”链接,应展开菜单,并将焦点设置在“测试 1”上。但由于某种原因,它会跳转到最后一个可聚焦的元素(测试 3):
<ul class="axxs-menu">
<li><a class="trigger">Menu 1</a>
<ul class="content">
<li><a href="#1">test 1</a></li>
<li><a href="#2">test 2</a></li>
<li><a href="#3">test 3</a></li>
</ul>
</li>
</ul>
这是相关的js:
jQuery.extend(jQuery.expr[':'], {
focusable: function(el, index, selector){
return $(el).is('a, button, :input, [tabindex]');
}
});
function openPopmenu(element) {
$(element).removeClass('trigger-inactive').addClass('trigger-active').attr("aria-expanded", "true").attr("aria-selected", "true");
$(element).next('.collapsed').removeClass('collapsed').addClass('expanded').show().attr("aria-hidden", "false");
$(element).next().find(':focusable').focus();
}
这是一个代码笔:
http://codepen.io/tactics/pen/EZbGBY
任何帮助深表感谢。