Горячие клавиши jQuery, работающие для любой клавиши, а не только для назначенного - PullRequest
2 голосов
/ 25 августа 2011

Я добавил этот код на свой сайт:

$(document).bind('keydown', 'i', function(){
$("#af").click();
return false;});

Проблема в том, что он работает с любым ключом, не только для «i».Что не так?

Ответы [ 3 ]

1 голос
/ 25 августа 2011

В вашем коде 'i' - это параметр, который передается вашей функции обратного вызова.Это не влияет на то, на какие коды символов будет реагировать ваше событие.Вы можете сделать это через

$(document).bind('keydown', function(e){
   if (String.fromCharCode(e.keyCode) == 'I') {
      $("#af").click();
      e.preventDefault();
   }
});
1 голос
/ 25 августа 2011

Поскольку jQuery Doc сказал:

event.which нормализует event.keyCode и event.charCode.Рекомендуется следить за событием, которое для ввода с клавиатуры.Для более подробной информации читайте о event.charCode на MDC .

, тогда лучше использовать

$(document).bind('keydown', function(e){
    var code = (e.keyCode ? e.keyCode : e.which);
    if (code == 73) {   
        $("#af").click();
        return false;
    }
});
0 голосов
/ 25 августа 2011

Правильный способ сделать это:

$(document).bind('keydown', function(e){
    if (e.keyCode =='i') {   
        $("#af").click();
        return false;
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...