我正在努力将键盘控件添加到日期选择器以实现辅助功能。我想使用 pageup 和 pagedown 键在下个月和上个月之间切换。作为代码的一部分,我使用 e.preventDefault
来防止页面仅在日期选择器打开时向上或向下滚动。我可以在 Firefox 和 IE 中使用它,但不能在 Chrome 或 Safari 中使用。
我不会在这里发布完整的代码,但我在下面创建了测试代码。无论我尝试什么,当在 Chrome 或 Safari 中按下这些键时,页面仍然向上/向下滚动。我无法使用 up、down、left 或 right 键,因为它们用于导航焦点在每个月的几天之间。
$(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
上的键的默认操作。到那时代码已经运行了。它必须位于 keydown
上。
第二个问题是 keyCode
是一个整数而不是字符串,所以您的 if 语句不会被输入。
$(window).keydown(function(e) {
console.log(e.keyCode);
if(e.keyCode === 34) {
console.log('page down');
e.preventDefault();
}
});
关于javascript - preventDefault 不适用于 Chrome 或 Safari 中的 pageup 或 pagedown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32891426/