Javascript JS将键盘快捷键绑定到函数

Javascript JS将键盘快捷键绑定到函数,javascript,jquery,jquery-hotkeys,Javascript,Jquery,Jquery Hotkeys,我想在按下u键时执行函数“LoadPlayer”。 我得到的是,对于任何按下的键,“LoadPlayer”都会被执行 热键库的添加方式如下: function initKeys() { $(document).bind("keydown", "U", LoadPlayer); } window.onload = initKeys; 但是找不到。我把它放在了和其他图书馆完全一样的地方。其他的没问题 我做错了什么?您在所有键上绑定了keydown事件。“U”是您将传递给处理程序lo

我想在按下u键时执行函数“LoadPlayer”。 我得到的是,对于任何按下的键,“LoadPlayer”都会被执行

热键库的添加方式如下:

function initKeys() {

    $(document).bind("keydown", "U", LoadPlayer);
}

window.onload = initKeys;

但是找不到。我把它放在了和其他图书馆完全一样的地方。其他的没问题


我做错了什么?

您在所有键上绑定了keydown事件。“U”是您将传递给处理程序loadPlayer(q.v)的参数。相反,直接绑定keydown,并在keycode中进行过滤。

您将在所有键上绑定keydown事件。“U”是您将传递给处理程序loadPlayer(q.v)的参数。相反,直接绑定keydown,并在keycode中进行过滤。

试试这个,它应该可以工作。 它检查匿名函数中按下的键(以便您可以根据需要添加任意数量的热键)

演示: (运行后在结果块中单击,以使keydown事件被监听:)

试试这个,它应该可以工作。 它检查匿名函数中按下的键(以便您可以根据需要添加任意数量的热键)

演示:

(运行后在结果块中单击以监听keydown事件:)

尝试从javascript src路径中删除/。还要检查热键库上的文件权限。

尝试从javascript src路径中删除。还要检查热键库的文件权限。

您使用的是哪个jQuery热键?有多个版本以不同的方式调用。@Tyler Crompton-jquery.hotkeys.js我想问的是它是从哪里来的。如果您能提供一个JSFIDLE来演示这个问题,这将非常有帮助。请提供一个JSFIDLE来演示这个问题。帮助我们,帮助你。另外,您使用的是什么版本的jQuery?您使用的是哪些jQuery热键?有多个版本以不同的方式调用。@Tyler Crompton-jquery.hotkeys.js我想问的是它是从哪里来的。如果您能提供一个JSFIDLE来演示这个问题,这将非常有帮助。请提供一个JSFIDLE来演示这个问题。帮助我们,帮助你。另外,您使用的是什么版本的jQuery?技术专家可能会在这里有所了解。也许OP没有正确加载热键,而是在执行jquery core bind()。@Seth,其他人也都这么做了,但他们所有的答案都不正确。但我想你可能是真正明白这一点的人。我觉得这很合理。@Seth-你说得对。jquery.hotkeys.js无法识别,尽管它存在于正确的路径中。我想这已经是另一个问题了,但原因是什么?@Sanich,您的路径中没有任何拼写错误,并且您确定该文件包含jQuery热键代码?没有拼写错误:)。如何验证该文件是否包含jQuery热键代码?(很抱歉问这个愚蠢的问题)技术专家们可能在这里发现了一些东西。也许OP没有正确加载热键,而是在执行jquery core bind()。@Seth,其他人也都这么做了,但他们所有的答案都不正确。但我想你可能是真正明白这一点的人。我觉得这很合理。@Seth-你说得对。jquery.hotkeys.js无法识别,尽管它存在于正确的路径中。我想这已经是另一个问题了,但原因是什么?@Sanich,您的路径中没有任何拼写错误,并且您确定该文件包含jQuery热键代码?没有拼写错误:)。如何验证该文件是否包含jQuery热键代码?(很抱歉这个愚蠢的问题)请看标签和评论,你会发现这个答案是错误的。你完全正确。我是个新手,反应还不好。下次我会看两遍标签;)请看标签和评论,你会发现这个答案是错误的。你完全正确。我是个新手,反应还不好。下次我会看两遍标签;)
<script language="javascript" type="text/javascript" src="./libraries/jquery.hotkeys.js"></script>
$(document).ready(function(){
    $(document).bind("keydown", function(e){ 
        e = e || window.event;
        var charCode = e.which || e.keyCode;
        if(charCode == 85) LoadPlayer();
    });
});