【发布时间】:2021-08-04 18:53:04
【问题描述】:
我有意见。当我专注于该输入时,将触发聚焦事件。 但在那个输入下我有
<div id="myDiv">
<ul>
<li>1</li>
</ul>
</div>
我希望在输入焦点移出时触发焦点移出事件 - 但当它被点击时 - 我不希望焦点移出到 ba 的输入。
我在这里尝试过:
How to exclude Id from focusout
$('#id').focusout (function (e) {
if (e.relatedTarget && e.relatedTarget.id === 'dontFocusOut') {
return;
}
//do your thing
});
但它对我不起作用 - 在event.relatedTarget 中我总是得到空值。
【问题讨论】:
-
这是一个奇怪的要求。如果用户单击
myDiv并且然后 10 秒后单击另一个元素会怎样...您不会触发focusout事件。请提供包含input元素的 sn-p,最好是可运行的 sn-p(使用工具栏),以便我们重现您的问题。 -
您能否解释一下为什么您不希望将焦点移出 - 也许有更好的方法来实现您想要的结果,而不是移除焦点
-
@Pete 我正在构建自动完成组件。所以点击下拉菜单 - 下拉选项被打开。用户可以选择下面的一些选项。如果他选择某个选项。然后 focusOut 会自动触发,我无法在我选择的自动完成选项中收听其他更改
标签: javascript