Как определить, когда нажата одна из клавиш со стрелками? Я использовал это, чтобы узнать:
function checkKey(e) {
var event = window.event ? window.event : e;
console.log(event.keyCode)
}
Хотя он работал для любой другой клавиши, он не работал для клавиш со стрелками (возможно, потому что браузер должен прокручивать эти клавиши по умолчанию).
javascript
keypress
keyboard-events
mihsathe
источник
источник
keypress
события для клавиш со стрелками, но вы правы, чтоkeydown
всегда работает для клавиш со стрелками.53
сkeydown
событием. Вы получаете37
сkeypress
, что другое делоonkeyup
и останови там событие. Однако на самом деле вы не должны изменять поведение пользовательского интерфейса с помощью Javascript.На клавише вверх и вниз вызывать функцию. Есть разные коды для каждой клавиши.
источник
e = e ? e : window.event;
Или:if (typeof(e) === "undefined") { e = window.event; }
keyCode === 32
, а неkeyCode == '32'
илиkeyCode === '32'
.event.key === "ArrowRight" ...
Более свежее и намного чище: используйте
event.key
. Нет больше произвольных числовых кодов! Если вы путешествуете или знаете, что все ваши пользователи используют современные браузеры, используйте это!Подробная обработка:
Вы можете легко расширить это, чтобы проверить
"w", "a", "s", "d"
, или любой другой ключMozilla Docs
Поддерживаемые браузеры
PS
event.code
то же самое для стрелокисточник
key
и нетkeyCode
, это устарело.Возможно, самая краткая формулировка:
Демо (спасибо пользователю Ангус Грант): http://jsfiddle.net/angusgrant/E3tE6/
Это должно работать кросс-браузер. Оставьте комментарий, если есть браузер, где он не работает.
Есть другие способы получить код ключа (например, e.charCode и window.event вместо e), но они не должны быть необходимыми. Вы можете попробовать большинство из них на http://www.asquare.net/javascript/tests/KeyCode.html . Обратите внимание, что event.keycode не работает с onkeypress в Firefox, но он работает с onkeydown.
источник
Используйте
keydown
, неkeypress
для непечатаемых клавиш, таких как клавиши со стрелками:Лучшая найденная мной справочная информация о событиях в JavaScript (например, обошла штаны в причудливом режиме): http://unixpapa.com/js/key.html
источник
Современный ответ, так как keyCode теперь устарел в пользу ключа :
источник
Я считаю, что самый последний метод будет:
Это предполагает, что разработчик хочет, чтобы код был активным в любом месте страницы, и клиент должен игнорировать любые другие нажатия клавиш. Устранить event.preventDefault (); строка, если нажатия клавиш, включая те, которые перехвачены этим обработчиком, все еще должны быть активными.
источник
источник
arrs
вне функции? Не нужно воссоздавать его каждый звонокВот пример реализации:
источник
var targetElement = typeof $0 !== 'undefined' ? $0 : document.body;
или просто:var targetElement = document.body;
все в порядкеВот как я это сделал:
источник
Я смог отловить их с помощью jQuery:
Пример: http://jsfiddle.net/AjKjU/
источник
keypress
не будет работать с клавишами со стрелками. Вы должны использовать$(document).on('keydown', function() {...})
вместо этогоЭто рабочий код для Chrome и Firefox
источник
Я тоже искал этот ответ, пока не наткнулся на этот пост.
Я нашел другое решение, чтобы узнать код клавиши разных ключей, любезно предоставив мою проблему. Я просто хотел поделиться своим решением.
Просто используйте событие keyup / keydown, чтобы записать значение в консоль / предупреждение, используя то же самое
event.keyCode
. подобно-- рупам
источник
Это короче.
function IsArrows (e) { return (e.keyCode >= 37 && e.keyCode <= 40); }
источник
if ([37,38,39,40].indexOf(e.keyCode)!=-1){ console.log('arrow pressed') }
Эта библиотека рулит! https://craig.is/killing/mice
Вам нужно нажать последовательность немного быстрее, чтобы выделить код на этой странице.
источник
Повторные ответы, которые вам
keydown
не нужныkeypress
.Предполагая, что вы хотите что-то перемещать непрерывно, пока нажата клавиша, я считаю, что это
keydown
работает для всех браузеров, кроме Opera. Для Operakeydown
только срабатывает при первом нажатии. Для размещения Opera используйте:источник
Стрелки срабатывают на KeyUp
onkeydown позволяет Ctrl, Alt, Shits
onkeyup позволяет вкладку, стрелки вверх, стрелки вниз, стрелки влево, стрелки вниз
источник
Если вы используете JQuery, то вы также можете сделать это,
источник
контролировать коды клавиш
%=37
и&=38
... и только клавиши со стрелками влево = 37 вверх = 38источник
Если вы хотите обнаруживать нажатия клавиш со стрелками, но не нуждаетесь в конкретном Javascript
источник
С ключом и ES6.
Это дает вам отдельную функцию для каждой клавиши со стрелкой без использования переключателя, а также работает с 2,4,6,8 клавишами в цифровой клавиатуре, когда
NumLock
она включена .источник