我正在努力将键盘控件添加到日期选择器以获取辅助功能。我想使用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;
}
答案 0 :(得分:3)
代码有几个问题。
您无法阻止keyup
上某个键的默认操作。到那时代码已经运行了。它必须在keydown
。
第二个问题是keyCode
是一个整数而不是一个字符串,所以你的if语句不会被输入。
$(window).keydown(function(e) {
console.log(e.keyCode);
if(e.keyCode === 34) {
console.log('page down');
e.preventDefault();
}
});