Я понимаю, что, поскольку вы присоединяете прослушиватель событий к объекту документа, все принимающие ввод элементы, такие как текстовые поля, выделения и т. Д., Будут обрабатывать горячие клавиши и, следовательно, теряют свое обычное поведение.
Взгляните на строку 44 в плагине jquery.hotkeys .Это исключает все входные принимающие элементы при инициализации.
PS Возможно, этот плагин в целом полезен для вашей задачи.
Ключ в том, чтобы проверить, происходит ли событие от ввода, принимающего текст.
# only bind event to text-accepting elements, if they have been
# explicitly selected
# if your event variable happens to be called e, please adjust accordingly
if ( this !== event.target &&
( /textarea|select/i.test( event.target.nodeName ) ||
event.target.type === "text") ) {
return;
}
Поскольку ваш код работает сейчас, вам нужно будет вставить этот фрагмент в начале анонимной функции, которую вы привязываете к событию нажатия клавиши.