我注意到“ - ”和“+”(不是小键盘上的那些)给了我不同的值。我在这里对它进行了比较:http://api.jquery.com/event.which/
http://www.words4ublog.com/wp-content/uploads/2013/06/Keyboard-Layout.jpg
我给你看了瑞典键盘布局的照片。您会在“0”旁边找到“+”,在“右移”旁边找到“ - ”。也许FF开发者浏览器不适合与其他地区合作?
Firefox开发者:“+”等于171,“ - ”等于173
其他浏览器:“+”等于187,“ - ”等于189
有没有什么可以告诉我为什么会这样?对我而言,这不是什么大问题,我会问这个问题。因为我不认为最终用户使用FF开发人员。如果他们这样做,他们仍然可以使用小键盘。
答案 0 :(得分:2)
which
不是事件,它是事件的属性。
keydown
和keyup
事件使用keyCode
或which
(取决于浏览器,但jQuery会为您处理)以报告密钥的密钥代码按下。键盘代码从键盘布局到键盘布局有所不同,并且###中通常是一种皇室般的痛苦。 Jan Wolter过去常常保持this very useful page on the subject,即使他不再更新它,它仍然非常有用且信息丰富。
keypress
事件使用keyCode
/ charCode
/ which
来报告已按下的字符。 在将密钥代码转换为字符之后,并且比keydown
/ keyup
事件中的密钥代码更加一致。
一般来说,keypress
是更有用的事件;仅当您必须检测到不会产生keydown
的密钥(如箭头)时才使用keypress
。