是否可以区分由点击引起的焦点事件与由制表符引起的事件?

问题描述

在Chrome浏览器(85)和FF(80)中,单击可选项元素将其聚焦。当然,也可以通过单击该元素来进行聚焦,并且来自两者的聚焦事件似乎是相同的(浏览器控制台中的视图转储:聚焦事件相当大):

document.getElementById('main').addEventListener('focus',console.log)
<a href="#" id="main">focus here</a>

对于以下情况,这将成为问题:我正在实现双击行为,其中必须单击一次选择一个项目,然后再次单击以跟随它。我还希望用户能够使用 tab + enter tab +单击以完成操作。

尽管我强烈希望使用默认的浏览器行为来完成大部分工作,但鉴于我要添加的所有内容都是额外的一次单击,因此,如果不听键盘击键,这似乎是不可能的。这是因为,如果上述两个事件确实无法区分,则无法分辨出以下两者之间的区别:

  • 一个标签,紧接着单击,然后
  • 单击一次即可生成焦点和单击事件。

事件顺序can't be trusted,很遗憾,FF始终是焦点,然后还是单击。

我忽略了焦点或单击事件中的某些东西,可以用来检查该事件的来源吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)