我有应用程序,我使用箭头键在表格单元格之间导航。我有一个问题
1)如果焦点位于第一行的第一个单元格中,则按下左键将使焦点不可见 2)如果焦点在最后一行的最后一个单元格中,则按右键使焦点不可见。
如果单元格是第一行的第一个单元格(按下左键)并且与最后一行的最后一个单元格相同(按下右键),如何使焦点保持在同一单元格中
这是代码:
switch(e.keyCode)
{
case 37:
// Left
button = cell.prev('td').find('button');
if (button.length == 0)
{
// Nothing further left, go to end of
// previous row
button = cell.parent('tr').prev('tr').find('td:last button');
}
break;
case 38:
// Up
row = cell.parent('tr');
index = row.children('td').index(cell);
button = row.prev('tr').find('td:eq(' + index + ') button').length === 0 ? row.find('td:eq(' + index + ') button') : row.prev('tr').find('td:eq(' + index + ') button');
break;
case 39:
// Right
button = cell.next('td').find('button');
if (button.length == 0)
{
// Nothing further right, go to beginning of
// next row
button = cell.parent('tr').next('tr').find('td:first button');
}
break;
case 40:
// Down
row = cell.parent('tr');
index = row.children('td').index(cell);
button = row.next('tr').find('td:eq(' + index + ') button').length === 0 ? row.find('td:eq(' + index + ') button') : row.next('tr').find('td:eq(' + index + ') button');;
break;
}
答案 0 :(得分:1)
如果没有更多的代码,很难分辨,但如果找不到下一个/上一个按钮,则要保留当前单元格,您只需在switch
语句后添加以下代码:
if (button.length == 0) button = cell.find('button');