0

我将 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() 被解雇了,所以这不是问题。

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

4

2 回答 2

0

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

于 2013-05-15T21:01:40.563 回答
0

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

不过,感谢您让我考虑我的代码:P 下次我在此处发布之前尝试考虑此类错误时......

于 2013-05-16T14:19:43.987 回答