$(document).keydown(function (event)
{
alert(event.which);
});
对于分号键; ,这在Firefox中为59,在Chrome中为186。但是,从keydown事件的jQuery参考页面,它说
“虽然浏览器使用不同的属性来存储此信息,但jQuery会规范化.which属性,以便您可以可靠地使用它来检索密钥代码。此代码对应于键盘上的一个键,包括特殊键的代码,如箭头。“
我错过了什么吗?
答案 0 :(得分:4)
which
属性是按下键的“一站式商店”,允许您忽略keyCode
和charCode
属性之间的差异。这就是jQuery提供的“规范化”。
which
值的差异归结为各种浏览器提供信息的方式之间的差异 - 因此您必须编写代码来处理返回的不同值。这种行为在线a few references。
答案 1 :(得分:1)
A quick Google search表示您只需测试两者。这与Firefox不一致。
答案 2 :(得分:0)
我不知道jQuery,但我建议坚持使用keypress事件来键入键,只使用keydown事件来处理箭头等特殊键。
答案 3 :(得分:0)
以下是jQuery所做的“规范化”的全部内容:
if ( event.which == null ) {
event.which = original.charCode != null ? original.charCode : original.keyCode;
}
如果keyCode
不存在,它看起来只是charCode
。仅当charCode
尚不存在时才会使用event.which
。它不会改变数字以使它们保持一致。