错误的元素集中在Chrome中

时间:2015-09-29 22:55:20

标签: javascript jquery html css onfocus

在我的javascript网络应用程序中,我有一个带有自定义单元格的表格,具有读取模式(简单标签)和双击(输入)时的编辑模式。当我处于编辑模式时,焦点设置在包含输入的div(在td中),然后我可以使用TAB移动到另一个单元格。当我处于读取模式时,焦点始终设置在包含标签的div上,我可以使用TAB和箭头移动到另一个单元格。 这在资源管理器中工作得很好,但在Chrome中,在读取模式下,焦点是不同的:在表格元素上设置,然后我不能使用TAB和箭头移动到另一个单元格。 我也尝试过强制对焦设置间隔:

$("#iddiv").focus()

问题出在Chrome上

<table>
<tbody>
<tr>
<td>
<div class='...'>
<label></label>
</div>
</td>
......
</tr>
</tbody>
</table>

1 个答案:

答案 0 :(得分:1)

tabindex="0"上设置<div>的属性(找到的技术in this blog post

$(function() {
  $('div[tabindex]').first().focus();
});
td {
  outline: 1px solid grey;
}
td label {
  display: inline-block;
  padding: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
  <tbody>
    <tr>
      <td>
        <div tabindex="0">
          <label>Cell 1</label>
        </div>
      </td>
      <td>
        <div tabindex="0">
          <label>Cell 2</label>
        </div>
      </td>
      <td>
        <div tabindex="0">
          <label>Cell 3</label>
        </div>
      </td>
      <td>
        <div tabindex="0">
          <label>Cell 4</label>
        </div>
      </td>
      <td>
        <div tabindex="0">
          <label>Cell 5</label>
        </div>
      </td>
    </tr>
    <tr>
      <td>
        <div tabindex="0">
          <label>Cell 6</label>
        </div>
      </td>
      <td>
        <div tabindex="0">
          <label>Cell 7</label>
        </div>
      </td>
      <td>
        <div tabindex="0">
          <label>Cell 8</label>
        </div>
      </td>
      <td>
        <div tabindex="0">
          <label>Cell 9</label>
        </div>
      </td>
      <td>
        <div tabindex="0">
          <label>Cell 10</label>
        </div>
      </td>
    </tr>
  </tbody>
</table>