在处理 key[Up|Down|Press] 事件时,我应该使用 .which 还是 .keyCode?我可以有一些示例代码来处理jQuery 中的三个键盘事件吗?没有jQuery你能做到吗?我希望它在每个浏览器中都能可靠地工作。
更新
奇怪的是,jQuery 的 event.which 规范化不适用于我的 handleKey Press(事件)处理程序:
// Add which for key events
if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) ) {
event.which = event.charCode || event.keyCode;
}
我在handleKey Press内部进行规范化之前和之后得到了这个(它没有将event.which设置为event.keyCode中的值):
- event.which = 0
- 事件.charCode = 0
- event.keyCode = 40
但是,如果我改用 handleKey Down ,则代码可以工作。我认为这与 keypress 与 keydown 有关;该代码适用于我的 handleKey Down(事件)处理程序。
不幸的是,我需要使用keypress(不是 keydown),因为我想使用箭头键进行导航:如果用户按住箭头键,则会触发一次keydown事件,但每次插入都会触发单独的keypress事件特点)。