簡體   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