Я смущен по поводу различных способов нажатия клавиш, нажатия клавиш и нажатия клавиш. Кажется, что я пропустил важную часть документации, которая объясняет тонкости и нюансы этого трио. Может ли кто-нибудь помочь мне выяснить, какой документ мне нужно прочитать, чтобы более эффективно использовать эти события? Если вам нужны детали, см. Ниже.
@o.v.: вы попросили меня показать какой-то код, но это не особая проблема в коде, который я пытаюсь решить. Я пытаюсь разобраться с поведением этих обработчиков событий и попросить кого-то, кто их понимает, указать мне хорошую документацию.
Я использую jQuery для создания входной формы и вставки ее в свой документ. Он работает отлично, в основном. Я хочу, чтобы форма реагировала на клавиатуру, как и большинство других форм ввода, которые я вижу там: клавиша esc должна отклонить форму так же, как нажать кнопку отмены, и потому что форма имеет <textarea>
на ней, cmd + enter должен совпадать с нажатием кнопки OK. Кажется достаточно простым, чтобы использовать событие keypress. Проблема в том, что Chrome не вызывает мой обработчик нажатия клавиши esc или cmd + enter. Он запускается для ctrl + enter и option + enter и для буквенно-цифровых символов, но не cmd + enter.
Итак, вместо этого я буду использовать keyup. Я получаю keyup для esc и keyup для cmd и keyup для enter, отлично. Но я не получаю keyup для ключа enter, пока я удерживаю cmd.
В третий раз, чары, вы можете подумать, что сбой работает, но с keydown вы получаете ключи повтора. Я знаю, все, что вам нужно сделать, это отвязать обработчик при первом вызове, но кажется странным, что три разных типа событий будут вести себя по-другому. Почему это? Есть ли очевидный документ, который я, очевидно, не читал?