为什么我的元素没有得到标签焦点?

时间:2012-12-18 16:29:16

标签: jquery tabs focus datatables

当涉及到标签焦点这样的事情时,我相当无知。我正在使用JQuery Datatables。

在一个窗口中,点击标签滚动浏览元素,不包括表格行,但包括带有“first,previous,next,last”分页按钮的表格页脚。

在另一个窗口中,标签焦点停在表格行的末尾并返回到页面顶部,跳过“第一页,上一页,下一页,最后一页”的分页按钮。

我编写了这两个数据表,它们非常相似,就像弹出窗口本身一样。我不认为这是一个大问题,但我的开发团队中有人为它开了一个bug,因为这是我的代码我想修复它(我不知道为什么有人会浪费时间测试这样的事情,我确信我们的客户使用光标点击分页按钮,我怀疑他们中的许多人甚至意识到反复点击标签会将它们带到那里。)

我的问题是,是什么决定哪些元素可以获得标签焦点?为什么两个非常相似的代码片段表现得如此不同?如何使它们保持一致(允许所有元素获得标签焦点,或者至少是分页按钮)?

1 个答案:

答案 0 :(得分:1)

我能想到的主要原因是:

    默认情况下,
  1. inputbuttona(锚)元素是“可标记的”,除非它们具有tabindex="-1"属性,这是非 - 标准但大多数浏览器都提供支持。它用于禁用标签。如果值为-1,请从按钮中删除该属性。同时确保没有JS将元素“tabIndex设置为-1

  2. 除了具有tabindex(例如tabindex="0")的默认可标记元素之外的元素也可以显示。

  3. 不太可能,但要确保没有onfocus属性或focus处理程序将焦点重定向到其他附加到按钮的位置。 tab密钥也可以捕获,但这种可能性很小。

  4. 以下是demo说明以上内容。