按键事件在IE和Chrome中不起作用,但在FF中工作

知道为什么会这样吗? 我通常会认为Chrome会对代码更宽容吗?

$(document).keypress(function(e) { if(e.keyCode == 39) rightImage(); if(e.keyCode == 37) leftImage(); }); 

这就是我的按键是什么样的。 我错过了什么吗? 右图(); 和leftImage(); 是因为我在其他地方也使用这些function,这些function应该正常工作

谢谢您的帮助!

keypress更改为keydown

 $(document).keydown(function(e) { if(e.keyCode == 39) rightImage(); if(e.keyCode == 37) leftImage(); }); 

按下键时会发生keydown事件,紧接着是按下按键事件。 然后在释放密钥时生成keyup事件。

为了理解keydown和keypress之间的区别,理解“字符”和“键”之间的区别很有用。 “键”是计算机键盘上的物理按钮,而“字符”是通过按下按钮键入的符号。 理论上,keydown和keyup事件表示按下或释放的键,而keypress事件表示键入的字符。 所有浏览器中的理论实现都不相同。

在这里找到答案: http : //api.jquery.com/keypress/

“如果你想在Chrome中使用箭头,删除,退格键,你必须使用keydown。这些键上的keypress仅适用于Firefox和Opera。”

您的代码在iE8中没有用(在FF中工作),所以我将keypress切换到keydown。 现在在IE中工作。 这里没有Chrome测试。