Связывание клавиш со стрелками в JS / jQuery - PullRequest
403 голосов
/ 10 сентября 2009

Как мне связать функцию с клавишами со стрелками влево и вправо в Javascript и / или jQuery? Я посмотрел на плагин js-hotkey для jQuery (оборачивает встроенную функцию связывания, чтобы добавить аргумент для распознавания определенных клавиш), но, похоже, он не поддерживает клавиши со стрелками.

Ответы [ 16 ]

3 голосов
/ 18 ноября 2013

Вы можете использовать jQuery bind:

$(window).bind('keydown', function(e){
    if (e.keyCode == 37) {
        console.log('left');
    } else if (e.keyCode == 38) {
        console.log('up');
    } else if (e.keyCode == 39) {
        console.log('right');
    } else if (e.keyCode == 40) {
        console.log('down');
    }
});
2 голосов
/ 18 декабря 2014

Вы можете проверить, нажата ли arrow key:

$(document).keydown(function(e){
    if (e.keyCode > 36 && e.keyCode < 41) { 
       alert( "arrowkey pressed" );
       return false;
    }
});
0 голосов
/ 04 января 2016

Я пришел сюда в поисках простого способа позволить пользователю, когда он сфокусирован на вводе, использовать клавиши со стрелками для +1 или -1 для числового ввода. Я так и не нашел хорошего ответа, но сделал следующий код, который, кажется, отлично работает - сделав этот сайт доступным сейчас.

$("input").bind('keydown', function (e) {
    if(e.keyCode == 40 && $.isNumeric($(this).val()) ) {
        $(this).val(parseFloat($(this).val())-1.0);
    } else if(e.keyCode == 38  && $.isNumeric($(this).val()) ) { 
        $(this).val(parseFloat($(this).val())+1.0);
    }
}); 
0 голосов
/ 12 ноября 2015

Надежная библиотека Javascript для ввода ввода с клавиатуры и введенных комбинаций клавиш. У него нет зависимостей.

http://jaywcjlove.github.io/hotkeys/

hotkeys('right,left,up,down', function(e, handler){
    switch(handler.key){
        case "right":console.log('right');break
        case "left":console.log('left');break
        case "up":console.log('up');break
        case "down":console.log('down');break
    }
});
0 голосов
/ 16 апреля 2015

запретить стрелку, доступную только для любого объекта, кроме SELECT, ну, на самом деле у меня нет тестов на другом объекте LOL. но он может остановить событие стрелки на странице и тип ввода.

Я уже пытаюсь заблокировать стрелку влево и вправо, чтобы изменить значение объекта SELECT, используя "e.preventDefault ()" или "return false" для событий "kepress", "keydown" и "keyup", но это все еще меняет объект значение. но событие все еще говорит вам, что стрелка была нажата.

0 голосов
/ 31 октября 2014

С кофе и Jquery

  $(document).on 'keydown', (e) ->
    switch e.which
      when 37 then console.log('left key')
      when 38 then console.log('up key')
      when 39 then console.log('right key')
      when 40 then console.log('down key')
    e.preventDefault()
...