У меня есть предмет, который можно перетащить в форму. Мне также удалось переместить элемент с помощью клавиш со стрелками на клавиатуре, используя:

$(document).bind('keypress', function(event) {
  if(event.which === 63232){ // up arrow key
    if(!event.shiftKey) howMuch = -1;   
    else if(event.shiftKey) howMuch = -10;   
    moveText(howMuch);   
  }
});

Но, по крайней мере, в FF, это больше не работает. Я предупредил о событии, которое происходит при нажатии стрелки, и все четыре возвращают ноль.

Как я могу обнаружить нажатие клавиши со стрелкой? Ах да ... JavaScript или JQuery.

Спасибо за ваше время, Тодд

0
maddogandnoriko 4 Фев 2013 в 19:19

2 ответа

Лучший ответ

Разве это не просто:

$(document).on('keypress', function(e) { // Note I used .on()
    if (e.keyCode == 38) {                // I never use .which
        howMuch = (e.shiftKey) ? -10 : -1;
    }
    moveText(howMuch); // never seen this function before, isn't that it?
});
1
11684 4 Фев 2013 в 15:27

Код ключа, который вы используете, неправильный, стрелка вверх 38:

$(document).bind('keypress', function(event) {
    if (event.which === 38) {
        moveText(event.shiftKey ? -10 : -1);   
    }
});

Коды клавиш со стрелками для справки:

  • Слева: 37
  • Up: 38
  • Справа: 39
  • Вниз: 40

Чтобы найти другие коды клавиш, проверьте пример для keyPress () в API

3
Rory McCrossan 4 Фев 2013 в 15:23