2

そこで、このスクリプトを作成して、Webサイトでキーボードショートカットを使用できるようにしました。複数のキーを実行する方法を考えていました(つまり、「左矢印」キーだけを実行するのではなく、「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はすでにそれを行っています。どのキーが押されたかを追跡するだけでなく、キーが、、または以下に示すプロパティと組み合わせて押されたかどうかに関する情報を取得することもaltできctrlます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 に答える