我使用的是 Firefox,当我使用 event.which 来确定哪个键导致事件触发时,在检查 keypress 事件与 keydown 事件的 event.which 时,我会得到不同的代码。
使用“-”键(连字符/减号)时。当基于按键事件报告时,我得到的 event.which 值为 45,但当基于按键事件报告时,我得到的值为 173。
对于按键,如果预期代码的值大于 128,我会得到错误的代码(我得到预期代码和 0x7f)。但是,如果我使用 keydown 执行相同的操作,我会得到预期的代码。
JSFiddle: http://jsfiddle.net/fzd3fjqm/1/
html:
<input id="whichkey" value="type something">
<div id="log"></div>
<div id="log2"></div>
javascript:
$( "#whichkey" ).on( "keypress", function( event ) {
$( "#log" ).html( event.type + ": " + event.which );
});
$( "#whichkey" ).on( "keydown", function( event ) {
$( "#log2" ).html( event.type + ": " + event.which )
});
这是预期的吗?
我正在编写一个由按键触发的函数,并根据事件过滤按键,但它不能很好地适应所描述的行为。
如果这是预期的,那么在按键触发的函数中确定按下哪个键的正确方法是什么?
最佳答案
是的,每个事件的 keyCode
都不同(并且因浏览器而异):http://www.quirksmode.org/js/keys.html
关于javascript - keypress 和 keydown 通过 event.which 提供不同的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28035681/