.keyCode与.which
我认为这将在堆栈溢出的地方回答,但我找不到它。
如果我正在监听按键事件,我是否应该使用.keyCode或.keyCode来确定Enter键是否被按下? 
我一直都是这样做的:
 $("#someid").keypress(function(e) { if (e.keyCode === 13) { e.preventDefault(); // do something } }); 
 但是我看到使用.keyCode代替.keyCode 。 有什么不同? 跨浏览器比另一个更友好吗? 
 有些浏览器使用keyCode ,其他使用which 。 如果你使用jQuery,你可以可靠地使用jQuery来标准化事物 。  更多在这里。 
如果你不使用jQuery,你可以这样做:
 var key = 'which' in e ? e.which : e.keyCode; 
或者交替地:
 var key = e.which || e.keyCode || 0; 
  …处理e.which可能为0的可能性(通过使用JavaScript的好奇的||运算符 ,最后恢复0 )。 
  jQuery根据event.which , event.keyCode或event.which是否被浏览器支持来event.which 。 
 // Add which for key events if ( event.which == null && (event.charCode != null || event.keyCode != null) ) { event.which = event.charCode != null ? event.charCode : event.keyCode; } 
jQuery的另外一个好处就是它也可以用来点击鼠标:
 // Add which for click: 1 === left; 2 === middle; 3 === right // Note: button is not normalized, so don't use it if ( !event.which && event.button !== undefined ) { event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) )); } 
看看这个: https : //developer.mozilla.org/en-US/docs/Web/API/event.keyCode
在按键事件中,按下的键的Unicode值存储在keyCode或charCode属性中,而不是两者。 如果按下的按键产生一个字符(例如'a'),charCode被设置为该字符的代码,尊重字母大小写。 (即charCode考虑shift键是否被按下)。 否则,被按下的键的代码被存储在keyCode中。 keyCode总是在keydown和keyup事件中设置。 在这些情况下,charCode从不设置。 要获取密钥的代码,无论是存储在keyCode还是charCode中,都要查询哪个属性。 通过IMEinput的字符不通过keyCode或charCode注册。
如果你留在香草JavaScript,请注意keyCode现已被弃用,将被删除:
该function已从Web标准中删除。 尽pipe一些浏览器可能仍然支持它,但它正在被丢弃。 避免使用它并尽可能更新现有的代码; 请参阅本页面底部的兼容性表格来指导您的决定。 请注意,此function可能会在任何时候停止工作
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
而是使用: .key或.code,取决于你想要的行为: https : //developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/code https://developer.mozilla.org/en -US /文档/networking/ API /的KeyboardEvent /关键
两者都在现代浏览器上实现。
用于捕获键盘input和组合键的健壮的Javascript库。 它没有依赖关系。
http://jaywcjlove.github.io/hotkeys/
 hotkeys('ctrl+a,ctrl+b,r,f', function(event,handler){ switch(handler.key){ case "ctrl+a":alert('you pressed ctrl+a!');break; case "ctrl+b":alert('you pressed ctrl+b!');break; case "r":alert('you pressed r!');break; case "f":alert('you pressed f!');break; } }); 
  hotkeys理解以下修饰符: ⇧ , shift , option , ⌥ , alt , ctrl , control , command和⌘ 。 
 下列特殊键可用于快捷键: backspace , tab , clear pageup , pagedown pageup , pagedown pageup , pagedown pageup , pagedown pageup ,上, pageup , left , right pageup , pagedown pageup , delete pageup , delete pageup , f1到f19 。