Как я могу использовать горячие клавиши jQuery для загрузки ссылки?

#jquery #hyperlink #keyboard #hotkeys

#jquery #гиперссылка #клавиатура #горячие клавиши

Вопрос:

Извините, если я где-то это пропустил, но я искал и искал это и не могу найти код, чтобы заставить это работать. Я ожидаю, что это очень просто, но, не будучи знакомым с javascript, я не смог его реализовать.

Я работаю над использованием плагина горячих клавиш jquery https://github.com/jeresig/jquery.hotkeys назначить отдельные буквенные клавиши (например, i, g и т.д.) ссылкам, чтобы по сайту можно было перемещаться с помощью клавиатуры или мыши. Я не хочу делать ничего особенного, просто попросите ключ загрузить страницу в браузере, так же, как если бы вы нажали на любую обычную ссылку.

Все, что я смог сделать, это получить предупреждение для отображения с помощью этого кода:

 $(document).bind('keydown', 'i', function() {
    alert('You found the hotkey!');
});
  

Но все, что я пытался получить ссылку для загрузки при нажатии i, не сработало. Кто-нибудь может посоветовать мне, какой код использовать? Спасибо.

Ответ №1:

Есть простое решение :

 $(document).keydown(e)
{
   if( e.keyCode == 13 )//enter for example
   {
       window.location.href ='http://...';
   }
}
  

Комментарии:

1. Спасибо. Мне удалось использовать следующий код (чтобы я мог оставаться в плагине горячих клавиш jquery): $(document).bind(‘keydown’, ‘i’, function() { window . Расположение. href =’http://…’; });

Ответ №2:

Чтобы привязать a keydown() к телу:

 $(window).keydown(
    function(k){
        if (k.which == 49){
            alert("You pressed '1'!");
        }
    });
  

Демонстрация JS Fiddle.

Вы могли бы ограничить это не входными элементами, используя следующий подход:

 $(window).keydown(
    function(k){
        var notTheseOnes = ['textarea','input'];
        var target = k.target.tagName.toLowerCase();
        if (k.which == 49 amp;amp; $.inArray(target,notTheseOnes) < 0){
            alert("You pressed the '1'!");
        }
    });
  

Демонстрация JS Fiddle.

Комментарии:

1. У меня не работает. $(window) однако делает: jsfiddle.net/WDNvn (привязка к документу тоже работает)

2. Хнх … интересно! Я тестировал свои демоверсии в Chromium (Ubuntu 11.04), но не в Firefox: действительно, Firefox требует, чтобы селектор был $(window) или $(document) . … отредактирован; и спасибо ..!