我正在使用firefox,当我使用event.which来找出导致事件触发的键时,我在检查event.which时会从keypress事件到keydown事件获得不同的代码。
使用' - '键(连字符/减号)。对于event.which,当基于keypress事件报告时,我得到45,但是当基于keydown事件报告时,值为173。
对于keypress,如果预期的代码是大于128的值(我得到expected_code& 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 )
});
这是预期的吗?
我正在编写一个基于event.which从按键触发和过滤键触发的函数,并且它不能很好地处理所描述的行为。
如果这是预期的,那么通过按键触发的功能确定哪个键被按下的正确方法是什么?