为了账号安全,请及时绑定邮箱和手机立即绑定

在jQuery中检测单个按键事件上的多个键

在jQuery中检测单个按键事件上的多个键

隔江千里 2019-08-27 17:14:49
在jQuery中检测单个按键事件上的多个键是否可以结合使用按键的混合物来发射单个事件?$(document).keyup(function(e){     if (e.keyCode == 68 && e.keyCode == 69 && e.keyCode == 86) {         alert('oh hai');     }});我在Chrome中尝试过,但事件并未触发。叫我疯了,但我正在编写一个Chrome扩展程序,并希望将D+ E+ V键一起推送到隐藏的开发人员模式。
查看完整描述

3 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

如果要检测的dev按键均下跌的同时,你必须注意既keydownkeyup,并保持地图为down的那些的。当他们全部失败时,解雇你的活动。

例如:Live copy | 资源

var map = {68: false, 69: false, 86: false};$(document).keydown(function(e) {
    if (e.keyCode in map) {
        map[e.keyCode] = true;
        if (map[68] && map[69] && map[86]) {
            // FIRE EVENT
        }
    }}).keyup(function(e) {
    if (e.keyCode in map) {
        map[e.keyCode] = false;
    }});

我假设你不关心他们被压下的顺序(因为这可能是一种痛苦,可靠地按下),只要他们在某个时刻同时处于同一时间。


查看完整回答
反对 回复 2019-08-27
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

与Vega相似......但更简单

var down = {};$(document).keydown(function(e) {
    down[e.keyCode] = true;}).keyup(function(e) {
    if (down[68] && down[69] && down[86]) {
        alert('oh hai');
    }
    down[e.keyCode] = false;});


查看完整回答
反对 回复 2019-08-27
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

也许更简单的组合键会更容易?

Shift + Alt + D怎么样?(您可能不应该使用Control键,因为大多数浏览器已经以某种方式解释Ctrl + D)

这个代码是这样的:

if(e.shiftKey && e.altKey && e.keyCode == 68){
  alert('l33t!');}


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 357 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信