Javascript 预防默认不';在Chrome或Safari中,不能在pageup或pagedown上工作

Javascript 预防默认不';在Chrome或Safari中,不能在pageup或pagedown上工作,javascript,jquery,jquery-events,preventdefault,Javascript,Jquery,Jquery Events,Preventdefault,我正在为日期选择器添加键盘控件,以便于访问。我想使用pageup和pagedown键在下个月和上个月之间切换。作为代码的一部分,我使用e.preventDefault来防止页面仅在日期选择器打开时才向上或向下滚动。我可以在Firefox和IE中使用,但不能在Chrome或Safari中使用 我没有在这里发布完整的代码,但我在下面创建了测试代码。无论我尝试什么,当在Chrome或Safari中按下这些键时,页面仍会上下滚动。我不能使用上、下、左或右键,因为它们用于在每个月的几天之间导航焦点 $(w

我正在为日期选择器添加键盘控件,以便于访问。我想使用pageup和pagedown键在下个月和上个月之间切换。作为代码的一部分,我使用
e.preventDefault
来防止页面仅在日期选择器打开时才向上或向下滚动。我可以在Firefox和IE中使用,但不能在Chrome或Safari中使用

我没有在这里发布完整的代码,但我在下面创建了测试代码。无论我尝试什么,当在Chrome或Safari中按下这些键时,页面仍会上下滚动。我不能使用上、下、左或右键,因为它们用于在每个月的几天之间导航焦点

$(window).keyup(function(e) {
    console.log(e.keyCode);
    if(e.keyCode === 34) {

        console.log('page down');

        e.preventDefault();
        e.stopPropagation;
        e.stopImmediatePropagation();
        return false;
}

代码有几个问题

无法阻止键在
keyup
上的默认操作。到那时,代码已经运行了。它必须打开
按键

第二个问题是,
keyCode
是一个整数,而不是字符串,因此不会输入if语句


示例代码中存在语法错误。你能修一下吗?谢谢。我通常使用keyup,但现在我了解了keydown、keypress和keyup的发生顺序,keydown才有意义。
$(window).keydown(function(e) {
    console.log(e.keyCode);
    if(e.keyCode === 34) {
        console.log('page down');
        e.preventDefault();
    }
});