我一直在研究一個下拉菜單/彈出式菜單,並且我工作得很好,只有一個例外;當你點擊鏈接(或點擊回車鍵)打開菜單時,應該將焦點設置爲可以獲得焦點的下一個元素。因此,在本例中,單擊「菜單1」鏈接,應該展開菜單,並將焦點設置爲「測試1」。但由於某些原因,它跳到最後一個聚焦元素(測試3)代替:如何將焦點設置在第一個可聚焦元素jQuery上?
<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
任何幫助,非常感謝。
完美。謝謝! – DeanH