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

How to trigger focusout on an element other than an input field?

本文关键字:元素 聚焦 输入 字段      更新时间:2023-09-26

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

// 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。

除非为输入元素以外的元素提供选项卡索引,否则不能将其集中。

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

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

演示