Я пытаюсь запустить следующий обработчик событий, указанный ниже; это была изначально функция keydown, но мне нужно настроить keypress вместо этого. Может кто-нибудь объяснить, что я делаю неправильно здесь?Как я могу сделать следующий обработчик события .keypress?
$(document).on('keypress', function(event) {
if (event.shiftKey) {
if (event.which === 37) {
currentPosition = (currentPosition>0) ? parseInt(currentPosition)-1 : maxFocusablePosition;
console.log(' shift + left');
focusPosition(currentPosition);
}
else if (event.which === 39) {
currentPosition = (currentPosition<maxFocusablePosition) ? parseInt(currentPosition)+1 : 0;
console.log('shift + right');
focusPosition(currentPosition);
}
}
});
Интересно. Невозможно использовать keypress для этих непечатаемых символов? –
Непечатаемые символы не генерируют это событие. Вы можете использовать обработчик событий «keydown» для их ловушки, а затем запускать событие «keypress» вручную, если они были нажаты (не уверен, зачем вам это нужно), но 'keypress' относится к произведению персонажа, а не к фактический ключ, который был поражен - вот что такое 'keyup' и' keydown'. –