我试图在 jQuery 中捕获箭头键按下,但没有触发任何事件。
$(function(){
$('html').keypress(function(e){
console.log(e);
});
});
这会生成字母数字键的事件,但删除键、箭头键等不会生成事件。
我做错了什么而没有捕捉到这些?
你应该使用.keydown()
因为.keypress()
将忽略“箭头”,以捕获关键类型使用e.which
按结果屏幕进行聚焦(小提琴屏幕右下角),然后按箭头键查看其工作情况。
Notes:
-
.keypress()
永远不会被 Shift、Esc 和 Delete 触发,但是.keydown()
will.
- 实际上
.keypress()
在某些浏览器中会通过方向键触发,但它不是跨浏览器的,所以使用起来更可靠.keydown()
.
更多有用信息
- 您可以使用
.which
Or .keyCode
事件对象的 - 有些浏览器不支持其中之一,但在使用 jQuery 时,使用两者都是安全的,因为 jQuery 标准化了事物。 (我更喜欢.which
从来没有遇到过问题)。
- To detect a
ctrl | alt | shift | META
press with the actual captured key you should check the following properties of the event object - They will be set to TRUE if they were pressed:
-
event.ctrlKey
- Ctrl
-
event.altKey
- 替代
-
event.shiftKey
- 转移
-
event.metaKey
- 元(命令 ⌘ 或 Windows 键 )
-
最后 - 这里有一些有用的关键代码(完整列表 -密钥代码备忘单 ):
- 输入:13
- 上:38
- 下降:40
- 右:39
- 左:37
- ESC:27
- 空格键:32
- 控制:17
- 替代:18
- 班次:16
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)