【问题标题】:How can I use jQuery hotkeys to load link?如何使用 jQuery 热键加载链接?
【发布时间】:2011-12-01 19:47:11
【问题描述】:

如果我在某个地方错过了它,我很抱歉,但是我已经搜索并搜索了这个,但找不到使这个工作的代码。我预计它很简单,但不熟悉 javascript 我无法实现它。

我正在使用 jquery 热键插件 https://github.com/jeresig/jquery.hotkeys 为链接分配单个字母键(例如 i、g 等),以便可以使用键盘或鼠标导航网站。我不想做任何花哨的事情,只需让键在浏览器中加载页面,就像您单击任何典型链接一样。

我所能做的就是使用此代码显示警报:

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

但是当我按下 i 时,我试图获取加载链接的任何操作都不起作用。谁能建议我使用什么代码?谢谢。

【问题讨论】:

    标签: jquery hyperlink keyboard hotkeys


    【解决方案1】:

    有一个简单的解决方案:

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

    【讨论】:

    • 谢谢。使用以下代码对我有用(这样我就可以留在 jquery 热键插件中): $(document).bind('keydown', 'i', function() { window.location.href ='http: //...'; });
    【解决方案2】:

    keydown() 绑定到正文:

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

    JS Fiddle demo.

    您可以使用以下方法将其限制为非输入元素:

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

    JS Fiddle demo.

    【讨论】:

    • 对我不起作用。 $(window) 但确实如此:jsfiddle.net/WDNvn(也可以绑定到文档)
    • 嗯...有趣!我在 Chromium (Ubuntu 11.04) 中测试了我的演示,但没有在 Firefox 中测试:确实,Firefox 确实要求选择器是 $(window)$(document)。 ...已编辑;谢谢你..!
    猜你喜欢
    • 2016-10-29
    • 1970-01-01
    • 2021-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多