好的,.keypress和.keydown/.keyup有什么区别?目前,我正在使用.keydown,它为我的密钥返回一个值为38的值,现在如果我将其更改为.keypress,它将为该密钥返回一个值109。有什么区别,为什么同一个键的值不同?jQuery .keypress&.keydown。which
回答
KeyPress发生在KeyDown之后。所以你可以使用KeyDown来确定它的密钥,然后KeyPress禁止该字符。
你应该阅读下列职位: http://javascript.info/tutorial/keyboard-events
的keydown触发任何按键,并给出扫描代码。 Keyyd在keydown后触发并给出char-code,但只保证字符键。
如果你按下一个按钮,它会触发一个并释放它将触发一个keyup
。 keypress
通常在这两者之间。
和keyup
谈一谈关键已经改变。 keypress
告诉哪个字符该键表示。
请注意,这是所有浏览器相关!
请参阅this article about the differences between the key events as implemented on various browsers。
我将是d $%^ @ d,真的和按键有所不同,而且这一次我从来没有意识到。笑
见我的小提琴,并尝试像字母的东西 “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
包含关键信息。“
是的,所以这就是为什么我对此感到困惑? – ChrisMJ 2012-04-17 14:26:25
以及jbl在他的回答中指出,[这个页面](http://javascript.info/tutorial/keyboard-events)只是稍微描述了这个问题,但它似乎还没有回答整个问题。也许我错误地阅读了页面,但是在某一点上它仍然指出charcode被拉到两个页面,只是一个会产生不同的值。也许在一些老版本的js文档中找到答案。我现在看,也将重新我的对象,包括按键差异 – SpYk3HH 2012-04-17 15:06:50
虽然我会建议避免按键,因为它不会像可预测的事件作为keydown和keyup – SpYk3HH 2012-04-17 15:08:16
在正常情况下,去keyup
:
$(document).keyup(function(e){
console.log(e.which);
});
原因:
- 保持当用户拿着钥匙向下射击,而
keypress
和keyup
火一次 。
keypress
未检测到特殊键(例如SHIFT
),和keyup
呢。
- 1. jQuery - keydown/keypress/keyup ENTERKEY检测?
- 2. KeyDown/KeyPress和索引
- 3. 在keydown/keypress后得到输入值
- 4. Excel加载项KeyPress/KeyDown实现(Visual Basic)
- 5. 在C#中处理KeyDown和KeyPress事件#
- 6. jQuery中的更改顺序/ keydown/keypress事件
- 7. jquery on keypress
- 8. 使用Javascript更改keydown/keypress事件的目标元素
- 9. KeyPress上的JQuery SlideDown
- 10. iOS 8第三方键盘不会注册javascript/jQuery keyup,keypress,keydown等
- 11. 为什么KeyPress的消息框在KeyDown之前显示?
- 12. WatiN KeyPress和keyDown事件在SelectList上没有做任何事
- 13. 在keypress或keydown上获取插入的字符<textarea>
- 14. 随机JQuery .keypress()问题
- 15. KeyPress不在jQuery中调用
- 16. Javascript/jQuery Keypress日志记录
- 17. Firefox中的jQuery @ Keypress检测
- 18. .keyCode与.which
- 19. jQuery的问题keydown
- 20. keyup keydown jquery处理
- 21. jQuery keydown()太急躁
- 22. Keydown事件Jquery节点js?
- 23. jQuery keydown事件禁用
- 24. 传播和Keydown jQuery问题
- 25. Jquery keydown不会工作
- 26. jQuery keydown事件:值延迟
- 27. jQuery使用keydown/keyup/keypress事件触发只有一次,而不是多次,当按住键时
- 28. Visual Studio中的KeyDown事件,KeyPress事件和KeyUp事件之间的区别
- 29. 如何在keydown或keypress事件后禁用listbox的滚动事件?
- 30. Jquery .keypress动态添加的输入
您正在使用哪种浏览器? – Mathletics 2012-04-17 12:56:10
不同的浏览器应该导致不同的事件,但不是不同的键盘命令 – SpYk3HH 2012-04-17 12:56:40
我有一个json对象,每个键盘事件都被浏览器分开,我会用三个按键真正快速地发布它,我们可以测试这个,10分钟的噱头 – SpYk3HH 2012-04-17 12:57:30