将多个键绑定到Keypress事件

mcb*_*eav 9 javascript jquery event-handling javascript-events

我目前正在使用此Javascript kepypress代码在按键时触发事件:

$(document).keydown(function(e) {
    switch(e.keyCode) {

    case 39:
        e.preventDefault();
        alert("Arrow Key");
        break;

    case 37:
        e.preventDefault();
        alert("Arrow Key");
    }
});
Run Code Online (Sandbox Code Playgroud)

但我想知道的是,如果我可以而不是绑定一个键绑定两个键的组合.我可以这样做:

$(document).keydown(function(e) {
    switch(e.keyCode) { 
        case 39 && 37:
            e.preventDefault();
            alert("Arrow Key");
        break;
    }
});
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 25

如果你想一次检查多个键,你应该只使用一个常规键和一个或多个修改键(alt/shift/ctrl),因为你不能确定在用户的键盘上实际上可以同时按下两个常规键(实际上,它们总是可以被按下,但由于键盘的连接方式,PC可能无法理解它.

您可以使用e.altKey,e.ctrlKey,e.shiftKey字段来检查是否按下了匹配修饰键.

例:

$(document).keydown(function(e) {
    if(e.which == 98 && e.ctrlKey) {
        // ctrl+b pressed
    }
});
Run Code Online (Sandbox Code Playgroud)