Подтвердить что ты не робот

JQuery.keypress &.keydown.

Хорошо, какая разница в .keypress и .keydown/.keyup? В настоящее время я использую .keydown, который возвращает значение .which значение 38 для моего ключа, теперь, если я изменю его на .keypress, он вернет значение 109 для этого же ключа. В чем разница и почему значения различаются для одного и того же ключа?

4b9b3361

Ответ 1

Я буду d $% ^ @d, действительно есть разница с keypress, и все это время я никогда не осознавал. lol

Смотрите мою скрипку и попробуйте что-то вроде буквы "r"

http://jsfiddle.net/SpYk3/NePCm/

Как-то я никогда не обращал на это внимания

Найдено больше информации:

http://www.quirksmode.org/js/keys.html

"Эти два свойства: keyCode и charCode. Положите (тоже) просто, keyCode говорит что-то о фактической клавише клавиатуры, нажатой пользователем, а charCode дает значение ASCII результирующего символа. биты информации не должны быть одинаковыми, например, нижний регистр" a "и верхний регистр" A "имеют одинаковый keyCode, поскольку пользователь нажимает один и тот же ключ, но другой charCode, потому что полученный символ отличается.

Проводник и Opera не поддерживают charCode. Однако они дают информацию о символе в keyCode, но только с onkeypress. onkeydown и -up keyCode содержит информацию о ключе."

Ответ 2

Если вы нажмете кнопку, то она запустит keydown, и для ее освобождения будет срабатывать keyup. keypress обычно происходит между этими двумя.

keydown и keyup расскажите о том, какая клавиша была изменена. keypress сообщает, какой символ представляет этот символ.

Обратите внимание, что это зависит от браузера!

См. в этой статье о различиях между ключевыми событиями, реализованными в разных браузерах.

Ответ 3

Вы должны прочитать следующее сообщение: http://javascript.info/tutorial/keyboard-events

Триггеры нажатия клавиш при нажатии любой клавиши и дают код сканирования. Keypress запускает после keydown и дает char -код, но он гарантирован только для символов.

Ответ 4

В обычных случаях перейдите к keyup:

$(document).keyup(function(e){
  console.log(e.which);
});

Причины:

  • keydown продолжает стрельбу, когда пользователь держит клавиши вниз, а keypress и keyup срабатывает только один раз.
  • keypress не обнаруживает специальных клавиш (например, SHIFT), keydown и keyup do.

Ответ 5

KeyPress происходит после KeyDown. Таким образом, вы можете использовать KeyDown, чтобы определить, какой именно ключ, затем KeyPress, чтобы запретить этот символ.