好的,那么.keypress和.keydown/.keyup有什么区别呢?目前我使用的是.keydown,它为我的键返回.which值38,现在如果我将其更改为.keypress,那么对于相同的键,它将返回值109。有什么不同?为什么同一个key的值会不同?
发布于 2012-04-17 21:02:27
如果你按下一个按钮,它会触发一个keydown,释放它会触发一个keyup。keypress通常介于这两者之间。
keydown和keyup讨论了更改了哪个密钥。keypress告诉您该键代表的是哪个字符。
请注意,这完全依赖于浏览器!
参见this article about the differences between the key events as implemented on various browsers。
发布于 2012-04-17 21:24:24
我将是d$%^@d,按键确实是有区别的,但我一直没有意识到。LOL
看看我的小提琴,试试像字母"r“这样的东西
http://jsfiddle.net/SpYk3/NePCm/
不知何故,我从来没有注意到这一点
找到更多信息:
http://www.quirksmode.org/js/keys.html
“这两个属性是keyCode和charCode。简单地说,keyCode表示用户实际按下的键盘键,而charCode给出结果字符的ASCII值。这些信息位不必相同;例如,小写字母'a‘和大写字母'A’具有相同的keyCode,因为用户按下相同的键,但charCode不同,因为结果字符不同。
Explorer和Opera不支持charCode。但是,他们在keyCode中给出了字符信息,但仅使用onkeypress。onkeydown和-up keyCode包含关键信息。“
发布于 2012-04-17 21:00:07
你应该阅读下面的帖子:http://javascript.info/tutorial/keyboard-events
键盘按下触发任何按键,并给出扫描码。Keypress在按键后触发,并给出字符代码,但它只对字符键有保证。
https://stackoverflow.com/questions/10191621
复制相似问题