小编Dea*_*anH的帖子

如何将焦点放在第一个可聚焦元素jQuery上?

我一直在下拉菜单/弹出菜单上工作,除了一个例外,它工作得很好。当您单击链接(或按Enter键)以打开菜单时,应该将焦点设置为可以接收焦点的下一个元素。因此,在此示例中,单击“菜单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>
Run Code Online (Sandbox Code Playgroud)

这是相关的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();
}
Run Code Online (Sandbox Code Playgroud)

这是一支代码笔:

http://codepen.io/tactics/pen/EZbGBY

任何帮助深表感谢。

jquery focusable

5
推荐指数
2
解决办法
3796
查看次数

使用jQuery切换元素的属性?

使用jQuery构建树状菜单,我希望它可以访问,所以我使用的是aria属性.我想要做的是在点击/输入时将"aria-expanded"属性从true切换为false.我试过这个,但显然不正确:

$(this).closest('ul').find('> li.tree-parent').toggleAttr( 'aria-expanded', 'true false' );
Run Code Online (Sandbox Code Playgroud)

jquery attributes toggle wai-aria

2
推荐指数
1
解决办法
8024
查看次数

标签 统计

jquery ×2

attributes ×1

focusable ×1

toggle ×1

wai-aria ×1