在发生单击之前,键盘事件在页面加载时没有响应(使用jquery hotkeys或mousetrap)

时间:2013-02-08 18:08:11

标签: jquery hotkeys shortcuts

我尝试使用jquery热键库(https://github.com/jeresig/jquery.hotkeys)和捕鼠器库(http://craig.is/killing/mice)来处理我网站上的键盘快捷键。

但是,正好在加载页面时,即使我尝试绑定到文档或窗口,也不会触发任何事件。点击后,事件就会触发。我最近尝试使用jQuery作为黑客攻击点击...但它不是很有效。

键盘事件应该在页面加载时响应吗?一旦用户关注页面,他们才会开始响应吗?有没有办法在用户点击鼠标之前将它们绑定到文档?

我尝试使用.focus().click()进行聚焦并看到此question,但不是运气。

2 个答案:

答案 0 :(得分:1)

键盘事件仅在页面上的元素(很可能是输入)被聚焦时触发。

这是一篇类似的帖子:

Do browser key events fire (bubble) only to elements in focus?

答案 1 :(得分:0)

我不熟悉您正在使用的任何插件,但如果您只是在寻找简单的按键绑定,则不需要任何插件

$(document).ready(function(){
    $(document).unbind('keyup'); // make sure nothing else breaks stuff

    $(document).bind("keyup", function(event){
        code = (event.keyCode ? event.keyCode : event.which);
        if (code == 13) {
            alert("enter key pressed");
        }
    })
})

这将引起无关紧要的焦点(显然用户浏览器仍然必须在顶部)。 有关可绑定密钥的完整参考,您可以检查here