这是我的示例表格格式:
这是我为 <tr>
动态设置 tabIndex 的代码(在 Chrome 和 FF 中完美工作,但在 IE 8 中不工作):
<html>
<head>
<script src="jquery-1.10.2.js"></script>
<style>
td {
color: blue;
}
:focus {
color: red;
}
</style>
<script>
$(document).ready(function() {
$("tr").attr( "tabIndex", function ( i ) {
return i + 1;
});
});
</script>
</head>
<body>
<table>
<thead></thead>
<tbody>
<tr><td>Five</td></tr>
<tr><td>Four</td></tr>
<tr><td>Three</td></tr>
<tr><td>Two</td></tr>
<tr><td>One</td></tr>
</tbody>
</table>
</body>
</html>
任何人都可以帮助修复表格行上的 tabIndex 设置,该设置适用于所有浏览器,尤其是在 IE8 上吗?
最佳答案
在 HTML 4.01 中,tabIndex
属性仅限于一组较小的 focusable 元素,这些元素不包括表格行。我怀疑您面临的问题可能就是这种情况,但在对 JSFiddle 进行一次测试后,我发现 IE 8 实际上正在正确处理代码。
这是我用来测试问题的快速演示:
<table>
<tr><td>Five</td></tr>
<tr><td>Four</td></tr>
<tr><td>Three</td></tr>
<tr><td>Two</td></tr>
<tr><td>One</td></tr>
</table>
:focus {
background: yellow;
}
$("tr").attr( "tabIndex", function ( i ) {
return 5 - i;
});
正如您在下面的 GIF 中看到的那样,IE 8 按预期运行。
那么问题可能是什么?检查你的 jQuery 版本; jQuery 2.x 版本不支持 Internet Explorer 8。如果您想支持已有五年历史的浏览器,则需要使用 jQuery 1.x 版本。
关于javascript - 为表行设置 tabIndex 在 IE8 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27220410/