onKeyPress По сравнению с onKeyUp и onKeyDown

Каково различие между этими тремя событиями? После поиска с помощью Google я нашел это

Событие KeyDown инициировано, когда пользователь нажимает клавишу.

Событие KeyUp инициировано когда разъединения абонентом Ключ.

Событие KeyPress инициировано, когда пользователь нажимает и отпускает Клавишу. (onKeyDown сопровождаемый onKeyUp)

Я понимаю первые два, но разве KeyPress не является тем же как KeyUp? (или действительно ли возможно отпустить клавишу (KeyUp), не нажатие (KeyDown) его?)

Это немного сбивает с толку, кто-то может разрешить это для меня?

294
задан Brian Tompsett - 汤莱恩 23 August 2019 в 06:34
поделиться

1 ответ

Несколько практических фактов, которые могли бы быть полезными для решения, какое событие обработать (запускает скрипт ниже и внимание на поле ввода):

$('input').on('keyup keydown keypress',e=>console.log(e.type, e.keyCode, e.which, e.key))
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input/>

Нажатие:

  • не ключи вставки/ввода (например, Сдвиг , Ctrl ) не инициируют keypress. Нажмите Ctrl и выпустите его:

    Управление keydown 17 17

    Управление keyup 17 17

  • ключи с клавиатур, которые применяют преобразования символов к другим символам, могут привести к [1 125] Мертвый , и делают "дубликаты ключа" (например, ~ , Вґ ) на keydown. Нажмите Вґ и выпустите его для отображения двойного ´´:

    keydown 192 192, Мертвый

    нажатие клавиши keydown 192 192 ВґВґ

    180 180 Вґ

    нажатие клавиши 180 180 Вґ

    keyup 192 192, Мертвый

Кроме того, не вводящие исходные данные (например, расположился <input type="range">) все еще инициируют весь keyup, keydown и события нажатия клавиши согласно нажатым клавишам.

0
ответ дан 23 November 2019 в 01:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: