我有页面的第一个输入元素在焦点事件中采取行动。但是,我只想在用户由于单击,制表键等而有意手动将焦点集中在该框上时执行此操作。我不希望浏览器的默认自动聚焦动作触发该动作。
有没有办法分辨出差异?
最佳答案
给定启用了<input>
的autofocus
元素:
<input autofocus>
...您可以使用JavaScript通过检查
focus
属性是否存在来忽略自动autofocus
事件。如果是这样,请关闭自动对焦,以便将来所有事件都可以使用。const input = document.querySelector('input');
input.addEventListener('focus', e => {
// Ignore the first, automatic focus event
if (e.target.autofocus) {
e.target.autofocus = false;
return;
}
// ... Handle user-triggered focus events ...
});
关于javascript - 确定输入焦点是由于自动聚焦还是用户交互引起的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57611574/