Javascript在可编辑的表格上移动光标,可在保存行上移动

问题描述:

我有Javascript,光标在上,下移动,在表格中输入。它的作品,但我想在同一行左右移动光标。我怎样才能做到这一点?Javascript在可编辑的表格上移动光标,可在保存行上移动

我试着和它不工作:

else if (evt.keyCode == 39){ 
    event.preventDefault(); 
    var cellindex = $(this).index() 
    var rowindex = $(this).parents('td').index() + 1 
    $(this).parents('table').find('tr:eq('+rowindex+') td:eq('+cellindex+')').focus() 
} 

这是向上,向下,进入工作代码。

jQuery(document).ready(function(){ 
    $('td').keydown(function(evt){ 
     if(evt.keyCode == 40){ 
      event.preventDefault(); 
      var cellindex = $(this).index() 
      var rowindex = $(this).parents('tr').index() + 1 
      $(this).parents('table').find('tr:eq('+rowindex+') td:eq('+cellindex+')').focus() 
     }else if (evt.keyCode == 38){ 
       event.preventDefault(); 
      var cellindex = $(this).index() 
      var rowindex = $(this).parents('tr').index() - 1 
      $(this).parents('table').find('tr:eq('+rowindex+') td:eq('+cellindex+')').focus() 
     } 
     else if (evt.keyCode == 13){ 
       event.preventDefault(); 
      var cellindex = $(this).index() 
      var rowindex = $(this).parents('tr').index() + 1 
      $(this).parents('table').find('tr:eq('+rowindex+') td:eq('+cellindex+')').focus() 
     } 
    }) 
}); 

添加到您的代码,最后else if (evt.keyCode == 13){后:

// other key handlers [...] 
} 
else if (evt.keyCode == 39){ 
    event.preventDefault(); 

    var rowindex = $(this).parents('tr').index(); 
    var cellindex = $(this).index() + 1; 
    $(this).parents('table').find('tr:eq('+rowindex+') td:eq('+cellindex+')').focus() 
} 
else if (evt.keyCode == 37){ 
    event.preventDefault(); 

    var rowindex = $(this).parents('tr').index(); 
    var cellindex = $(this).index() - 1; 
    $(this).parents('table').find('tr:eq('+rowindex+') td:eq('+cellindex+')').focus() 
} 

evtKeyCode == 39是按下右箭头,evt.keyCode == 37是左箭头。

基本上,你所要做的就是从你以前的东西中翻转行索引和单元格索引。

Here's a CodePen of it working

+0

问题。这确实有用。但是在我的表格中,我有一些可编辑的列,有些不是,这会停止在那些没有的列上。我可以做什么来跳过那些不可编辑的东西? – varcor 2014-10-09 01:39:24