コンボキーボードショートカットの処理

私は、キーの押下のGMail/Twitterキーボードショートカットをシミュレートし、その後にjQueryのどこかをナビゲートする別のキーをシミュレートしたいと思います。

たとえば、 G 、次に H はGMailの "Home"になります。 Twitterには、 G H などの他の「コンボ」ショートカットもあります。

この動作をシミュレートするjQueryプラグインはありますか?

2
私はjquery.hotkeysプラグインとのコンボショートカットを持つ方法を見ていない。複数のキーを押す(Ctrl + Aなど)ができますが、G、Hはできません。間違っていると、私はすでにこのプラグインを使いたいので、非常に満足しています。
追加された 著者 Brad Leach,
追加された 著者 Sudhir Bastakoti,

4 答え

I just released a library last week called mousetrap that has this functionality built in. Check out http://craig.is/killing/mice

できるよ

Mousetrap.bind('g h', function() {
    console.log('go home!');
});
7
追加された
この素晴らしいlibのTyvm!
追加された 著者 Sergey Telshevsky,

プラグインについてはわかりませんが、キーのキューを保持し、各マウスアップでそのキューを処理することで、これを実現することができます。

つまり、次のようなものです。

var myKeyQueue = [];

$(document).keydown(function(e) {
    var code e.charCode != 0 ? e.charCode : e.keyCode;
    myKeyQueue.push(code);
});

$(document).keyup(function(e) {
    processKeyQueue();
});

そして、processKeyQueue関数は次のようになります:

function processKeyQueue() {

   //check if the Q contains any actionable key-combo, if so do it!
    /*
    if(myKeyQueue.length == 2) {
        if(String.fromCharCode(myKeyQueue[0]) == 'G' &&  String.fromCharCode(myKeyQueue[0]) == 'H') {
           //you code here ...
        }
    }
    */

    if(myKeyQueue.length >= 2) {
        myKeyQueue = [];//remove all keys in Q
    }
}
1
追加された

私はこれを考える: http://www.openjs.com/scripts/events/keyboard_shortcuts/ 自分のショットカットを追加するために何らかの方法で役立つかもしれません

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript