如何在输入字段以外的元素上触发焦点输出?

时间:2016-03-27 10:18:37

标签: javascript jquery

我正在尝试在focusout元素上触发ul事件:

// HTML
<nav>
  <ul _v-2e9e2f12="">
    <li _v-2e9e2f12="">
      <a _v-2e9e2f12="">
      </a>
      <ul _v-0078ee36="" _v-2e9e2f12="">
        <li>List element</li>
        <li>List element</li>
        <li>List element</li>
      </ul>
    </li>
  </ul>
</nav>

// JS
$(document).ready(function() {
  $("a").click(function(ev) {
    var $icon = $(ev.currentTarget)
    var $menu = $icon.next()
    $menu.focus()
    console.log('Focus triggered!')
  });

  $("ul[_v-0078ee36]").focusout(function() {
    console.log('Focusout triggered!')
  });
})

但永远不会触发.focusout

这样做的正确方法是什么?

这是JSFiddle

1 个答案:

答案 0 :(得分:3)

除非您为它们提供制表符索引,否则无法聚焦输入元素以外的元素。

<ul tabindex="-1" _v-0078ee36="" _v-2e9e2f12="">

因此,如果要为非输入元素触发焦点,则必须将其选项卡索引设置为-1

DEMO