我目前正在使用 Twitter Bootstrap,并且在模态的 tabindex 中遇到了一个奇怪的问题:
我正在尝试通过模式内的表单元素进行选项卡,但是在最后一个按钮之后,焦点在返回关闭按钮之前消失了。我在控制台中添加了一行记录正在关注哪个元素,结果证明它是模态本身,即使它有tabindex="-1"
.
我无法分享我的代码,但快速查看 Bootstrap 文档告诉我,它也发生在他们的示例模式中。问题是可重现的:
- 访问http://getbootstrap.com/2.3.2/javascript.html#modals
- 打开演示模式(“启动演示模式”按钮)
- 浏览字段。在“保存更改”返回关闭按钮之前,您将失去焦点。
tabindex="-1"
每当模态(或实际上任何带有 的元素)获得焦点时,将其放在控制台中都会记录。
$('[tabindex="-1"]').focus(function(){
console.log('Focus is on an element with negative tabindex')
});
(当您显然单击模式时,它也会记录它,但这超出了范围)。
为什么会这样?我怎样才能防止这种情况?这是浏览器错误,Twitter Bootstrap 的错误/功能,还是完全其他的?