在表格中,我通过更改行的样式来模拟选定的行。现在我想通过箭头键移动这个选定的行,但 keydown 事件在 Chrome 和 Firefox 中不起作用。
我不想使用 JQuery。
另外(如果可能)因为我在复杂的过程中在服务器端呈现此表,所以最好使用内联事件处理程序而不是附加 javascript(我的意思是使用 < tr onkeydown="myfunc(this)" > ...)
在表格中,我通过更改行的样式来模拟选定的行。现在我想通过箭头键移动这个选定的行,但 keydown 事件在 Chrome 和 Firefox 中不起作用。
我不想使用 JQuery。
另外(如果可能)因为我在复杂的过程中在服务器端呈现此表,所以最好使用内联事件处理程序而不是附加 javascript(我的意思是使用 < tr onkeydown="myfunc(this)" > ...)
我认为您不应该在表格行上使用 onkeydown 。仅当您在其中有输入元素时,对行的 Keydown 才有效。否则他们无法集中注意力。
不知道这在你的情况下是否可行,但你可以这样尝试。如果出于某种原因您不想使用 jQuery,则必须针对不支持 querySelector 的浏览器对其进行一些修改:
document.body.addEventListener('keydown',function(ev){
var trs = document.querySelector('.s');
if(ev.keyCode == 38 && trs.previousSibling){
trs.className = '';
trs.previousSibling.className = 's';
}else if(ev.keyCode == 40 && trs.nextSibling){
trs.className = '';
trs.nextSibling.className = 's';
}
})