3つのキーイベントを別々にキャプチャし、3つ目のキーイベントの後にアクションを開始する必要があります。
var keys = {
d: { code: 100, pressed: false, next: 'e' },
e: { code: 101, pressed: false, next: 'v' },
v: { code: 118, pressed: false, next: 'd' }
},
nextKey = 'd';
$(document).keypress(function(e) {
if (e.keyCode === keys[nextKey].code) {
keys[nextKey].pressed = true;
nextKey = keys[nextKey].next;
} else {
keys.d.pressed = false;
keys.e.pressed = false;
keys.v.pressed = false;
nextKey = 'd';
}
if (keys.d.pressed && keys.e.pressed && keys.v.pressed) {
alert('Entering dev mode...');
}
});
もちろん、これを行うにはいくつかの方法があります。この例では、キーを同時に押したままにする必要はありません。つまり、次の順序で入力するだけです。dev
これを使用した場合は、少し時間をおいてからpressed
フラグをクリアすることができます。
ここにはworking exampleがあります。
免責事項:私は元の質問は、キーが「一緒に押す」されるべきであると述べた実感。これは、他の回答者がすでに一緒に押されているキーのための十分な解決策を提供しているので、単なる代替案である。
keyCodeは1つのキーのみを表すことができます。これを検出するには、keydown + keyup +フラグの組み合わせを使用してください。 – yent
可能な複製[jQuery .keypress()が複数のキーを同時に検出できるか?](http://stackoverflow.com/questions/4954403/can-jquery-keypress-detect-more-than-one-key -at-the-same-time) –
受け入れられた回答を[this](http://stackoverflow.com/a/35249618/3853934)に変更することを検討してください。それはより現代的かつ一般的なアプローチを提示する。 –