<ul>元素怎么能收到焦点事件?

Fra*_*man 5 html javascript focus

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

$(function() {
    $("*").bind("focus", function() {
        console.log("tabbed " + this.tagName);
    });
});
Run Code Online (Sandbox Code Playgroud)

当这个运行时,我可以看到firebug控制台并看到它跟踪标签,如"A"和"INPUT",我期望在我通过文档选项卡时获得焦点.然而,它也跟踪一个"UL"标签.该文档有多个UL标签,只有这一个UL标签似乎得到了关注.

任何想法如何发生这种情况?具有焦点的UL标签没有属性(名称,ID等),因此我不知道它将如何被其他脚本修改.

(在firefox中运行.我正在查看的页面非常大,所以我不包含源代码,但UL标记没有属性,包含一些LI,其中一个LI包含标记).

根据哪些HTML元素可以获得焦点?,也许是因为某些脚本在该UL标签上设置了tabindex.我找不到任何这样的剧本.

请注意,我并不是想弄清楚如何使UL成为可调焦的,而是要弄清楚为什么它是可聚焦的.

Jur*_*nka 10

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

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

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

<ul tabindex="2">
    <li>item</li>
    <li>item</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

这个"黑客"应该强制UL元素可以集中精力(为我工作)