Javascript a<;ul>;元素是否接收焦点事件?

Javascript a<;ul>;元素是否接收焦点事件?,javascript,html,focus,Javascript,Html,Focus,我正在运行以下代码来跟踪在HTML文档中获得焦点的每个控件的标记名: $(function() { $("*").bind("focus", function() { console.log("tabbed " + this.tagName); }); }); 当它运行时,我可以观察firebug控制台,并看到它跟踪标记,如“A”和“INPUT”,我希望在通过文档的I选项卡时收到焦点。但是,它也跟踪一个“UL”标签。该文件有多个UL标签,只有这一个UL标签似乎得

我正在运行以下代码来跟踪在HTML文档中获得焦点的每个控件的标记名:

$(function() {
    $("*").bind("focus", function() {
        console.log("tabbed " + this.tagName);
    });
});
当它运行时,我可以观察firebug控制台,并看到它跟踪标记,如“A”和“INPUT”,我希望在通过文档的I选项卡时收到焦点。但是,它也跟踪一个“UL”标签。该文件有多个UL标签,只有这一个UL标签似乎得到关注

你知道这是怎么发生的吗?具有焦点的UL标记没有属性(名称、id等),因此我不知道其他脚本会如何修改它

(在firefox中运行。我正在查看的页面非常大,因此我不包括源代码,但UL标记没有属性,包含一些LIs,其中一个LIs确实包含标记)

根据,这可能是因为某些脚本在该UL标记上设置了tabindex。但是我找不到这样的脚本


请注意,我不是想弄清楚如何使UL可聚焦,而是想弄清楚它为什么可聚焦。

如果UL内的一个LIs包含A标记,则聚焦事件(来自A)可能会传播到UL

处理焦点完全取决于浏览器的实现

您可以通过添加tabindex属性来强制关注html元素,例如:

<ul tabindex="1">
    <li>item</li>
    <li>item</li>
</ul>

<ul tabindex="2">
    <li>item</li>
    <li>item</li>
</ul>
  • 项目
  • 项目
  • 项目
  • 项目
这一“黑客”应该迫使UL元素从2020年1月16日起成为可聚焦的(为我工作)

术语可聚焦区域用于指界面中可能成为键盘输入目标的区域。可聚焦区域可以是元素、元素的一部分或由用户代理管理的其他区域

每个都有一个DOM锚定,它是一个
节点
对象,表示DOM中可聚焦区域的位置。(当可聚焦区域本身是一个
节点时,它是自己的。)在一些API中,当没有其他DOM对象来表示可聚焦区域时,可以使用DOM锚来替代可聚焦区域

下表描述了哪些对象可以成为可聚焦区域。左列中的单元格描述了可聚焦区域的对象;右列中的单元格描述了这些元素的DOM锚定。(跨越两列的单元格为非规范性示例。)

具体地说,在显式聚焦元素等明显的情况中,
of尤其令人感兴趣:

  • 聚焦区域 是和不是元素的可滚动区域。

  • DOM锚定 为其创建可滚动区域滚动框的元素

  • 示例 CSS属性的“滚动”值通常创建一个可滚动区域

除了特定于用户代理的行为之外,最合理的解释是
元素实际上被用作列表项的滚动容器,这些项溢出,创建了一个可滚动区域,用户代理(web浏览器)作出规定,以便根据HTML标准可以访问容器的滚动功能


请注意,指定
tabindex=“-1”
将禁止它出现在选项卡导航顺序中;但是,它仍然可以聚焦。

焦点不会传播(气泡)。在这种情况下,我并不真的希望UL可以聚焦,我正在试图找出原因。它没有设置tabindex属性。(这是在Firefox上,没有尝试IE)哦,很抱歉回答有误:)尝试用:$(“ul”)删除tabindex。removeAttr('tabindex');如果这解决了问题,那么您应该重新检查包含的脚本:)