按键事件在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测试。