2011-01-24 178 views
2

我有应用程序,我在表格单元格中使用箭头键导航。我在这里有一个问题使用jquery箭头键导航表中

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; 
    } 

回答

1

很难说没有更多的代码的一点,但留在你的当前单元格,如果没有下一个/上一个按钮,找到你应该有你的switch语句之后添加以下代码:

if (button.length == 0) button = cell.find('button'); 
+0

非常感谢MVChr – rashmi