javascript keydown不能在chrome和firefox中工作

时间:2013-04-27 06:48:41

标签: javascript event-handling cross-browser keydown

在表格中,我通过更改行的样式来模拟选定的行。现在我想通过箭头键移动此选定的行,但是keydown事件在Chrome和Firefox中不起作用。

我不想使用JQuery。

另外(如果可能的话)因为我在一个复杂的过程中在服务器端渲染这个表,最好使用内联事件hanlder不用javascript附加(我的意思是使用< tr onkeydown =" myfunc(this)&# 34;> ...)

1 个答案:

答案 0 :(得分:0)

我认为你不应该在表行上使用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';
    }
})

http://jsfiddle.net/FvgaE/