繁体   English   中英

使用锚点时,为什么按键处理程序不起作用

[英]Why does my keypress handler not work when I use anchors

我在主页上使用jQuery,并在加载窗口时添加了侦听器。 看起来像这样:

$(window).load(function(){
    var debug = $('#debug'); // this is a fixed div I use to print debug
                             // information to the screen
    $(window).keypress(function(event) {
        var keyCode = event.keyCode ? event.keyCode : event.which;
        debug.text(keyCode);
        if (keyCode == 106 || keyCode == 40)
            nextCard();
        else if (keyCode == 38 || keyCode == 107)
            prevCard();
    });
});

您可以使用上箭头和下箭头键或“ j”和“ k”从一张卡跳转到另一张卡。 只要加载页面而不跳转到锚点,它就可以正常工作。 这意味着当我转到http://www.blah.com之类的页面时,它可以正常工作,但是当我以http://www.blah.com#anchor这样的方式加载它时,它不再起作用。

更新: $(window).load()被触发,所以这不是问题。

您有什么想法可能是问题吗? 谢谢!

如果找不到简单的解决方案,则可以在每次哈希更改时尝试重新绑定函数。 例如,使用此插件http://benalman.com/projects/jquery-hashchange-plugin/

我发现了问题。 实际上,它与按键处理程序无关。 它是一个处理程序,只要有人进入URL中带有哈希值的页面,它就会启动滚动动画。

尽管如此,还是感谢您让我考虑一下我的代码:P下次我尝试在发布之前在这里考虑这些错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM