いずれかのキーを押すと 1 つのイベントしか発生しないため、これで両方のキーを検出することはできないと思います。Shift、alt、ctrl、およびその他のメタ キーは特殊なケースです。
1 つの解決策は、最後に押されたキーを保存してから、次のキーを待つことです。以下のコードのデモを作成しました。
var timer, last;
$(document).bind('keydown', function(e) {
// Typing a then h will call the alert
if (last == 65 && e.which === 72) {
alert('Hello World');
}
last = e.which;
// clear last value after 100 ms
clearTimeout(timer);
timer = setTimeout(function(){
last = '';
}, 100);
});
最後のキーは 100 ミリ秒後にクリアされることに注意してください。これがなければ、「a」を押してから 10 秒ほど待ってから「h」を押してアラートを受け取ることができるからです。ここで、組み合わせをほぼ同時に押す必要があります (ただし、「a」は「h」の前にある必要があります)。わずかな変更により、ユーザーは最初に「h」を押してから「a」を押すこともできます。