Хорошо, какая разница в .keypress и .keydown/.keyup? В настоящее время я использую .keydown, который возвращает значение .which значение 38 для моего ключа, теперь, если я изменю его на .keypress, он вернет значение 109 для этого же ключа. В чем разница и почему значения различаются для одного и того же ключа?
JQuery.keypress &.keydown.
Ответ 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, чтобы запретить этот символ.