Javascript 当我使用锚时,为什么我的按键处理程序不工作

Javascript 当我使用锚时,为什么我的按键处理程序不工作,javascript,jquery,keypress,Javascript,Jquery,Keypress,我将jQuery用于我的主页,并在加载窗口时添加一个keylistener。看起来是这样的: $(window).load(function(){ var debug = $('#debug'); // this is a fixed div I use to print debug // information to the screen $(window).keypress(function(event) {

我将jQuery用于我的主页,并在加载窗口时添加一个keylistener。看起来是这样的:

$(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”从一张卡跳到另一张卡。只要加载页面而不跳转到锚点,它就可以正常工作。这意味着当我进入页面时,它工作正常,但当我像这样加载它时,它就不再工作了

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


你知道问题出在哪里吗?谢谢

如果找不到简单的解决方案,可以在每次散列更改时尝试重新绑定函数。例如,通过这个插件,我发现了问题。它实际上与按键处理程序无关。它是一个处理程序,每当有人进入URL中包含哈希的页面时,它就会启动滚动动画


不过,谢谢你让我想到我的代码:P,下次我尝试在我在这里发布之前考虑这些错误……/P>它是怎么工作的?它根本不起作用,或者功能不正确。如果不正确,以什么方式?我猜按键事件实际上工作正常,但是
nextCard
prevCard
在某种程度上表现不正常。在keypress处理程序的第一行上放置一个断点,将页面加载到锚点,然后按键。怎么回事?按键根本不起作用。我已经更新了上面的代码,以便您现在可以看到什么是“调试”。当我按下某个键时,keycode不会添加到debug div中。因此该函数根本不会被调用。我尝试过该插件,但它似乎不适用于jquery 1.9.1。如果它不适用于jquery 1.9.1,您应该尝试加载jquery迁移插件。请参阅jquery网站。