Я не думаю, что было бы возможно обнаружить обе клавиши, так как нажатие любой клавиши вызовет только одно событие. Shift, alt, ctrl и другие мета-ключи являются особым случаем.
Одним из решений будет сохранение последней нажатой клавиши, а затем ожидание следующей. Я сделал демо кода ниже:
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 миллисекунд, потому что без нее вы можете нажать «а», затем подождать что-то около 10 секунд, а затем «h», чтобы получить предупреждение. Теперь комбинация должна быть нажата почти вместе (но «а» должно быть перед «h») - небольшая модификация также позволит пользователю сначала нажать «h», затем «a».