2

所以我写了这个脚本,这样你就可以在你的网站上使用键盘快捷键,我想知道如何做多个键(即不是只做“左箭头”键,而是“ctrl + 左箭头”。这里是我当前的语法:

var arrow = {
    left: 37,
    up: 38,
    right: 39,
    down: 40
};

function DoSomething() {}

$(document).ready(function() { // requires jQuery
    $("body").keydown(function(event) {
        if(event.keyCode == arrow.left) {
            DoSomething();
        }
    }
}

但我想做的是这样的:

var arrow = {
    left: 37,
    up: 38,
    right: 39,
    down: 40
},

ctrl = 17;

function DoSomething() {}

$(document).ready(function() { // requires jQuery
    $("body").keydown(function(event) {
        if(event.keyCode == ctrl && arrow.left) {
            DoSomething();
        }
    }
}
4

2 回答 2

5

jQuery 中提供的事件对象告诉您是否ctrl正在按下键。

$(document).on("keydown", function (event) {
    if (event.ctrlKey && event.which === arrow.left) {
        console.log("You pressed left, and control.");
    }
});

演示:http: //jsfiddle.net/zcMXR/

于 2012-11-20T16:11:58.280 回答
1

jQuery 已经做到了。除了跟踪按下了哪个键外,您还可以获取有关该键是否与 结合使用的信息altctrl或者shift与下面显示的属性一起使用:

$(document).keydown(function(e) {
      console.log('key code is: ' + e.which + ' ' + (e.ctrlKey ? 'Ctrl' : '') + ' ' +
            (e.shiftKey ? 'Shift' : '') + ' ' + (e.altKey ? 'Alt' : ''));
});

因此,要检查组合键是否为 Ctrl + Up,您的条件将如下所示:

if( e.which == 38 && e.ctrlKey ){
    console.log('You pressed Ctrl+Up');
    ...
}
于 2012-11-20T16:13:47.393 回答