gpt4 book ai didi

javascript - jquery防止窗口滚动

转载 作者:行者123 更新时间:2023-12-01 01:51:38 24 4
gpt4 key购买 nike

我正在用 jquery 开发一个选择菜单替换。
首先,我只需将 tabindex="0" 添加到容器即可使新的选择菜单可聚焦。
然后,我禁用原始选择菜单的焦点并将焦点放在新菜单上。当新的焦点被聚焦并按下向上和向下箭头时,选项会相应改变,但有一个大问题。当您按下箭头时, body 也会移动。
到目前为止,我尝试了所有这些解决方案,但没有成功:

$(window).unbind('scroll');
$(document).unbind('scroll');
$('body').unbind('scroll');
$(window).unbind('keydown');
$(document).unbind('keydown');

检查这里的代码 http://pastebin.com/pVNMqyui此代码来自 Ideal Forms 的开发版本 http://code.google.com/p/idealforms我即将发布,带有键盘支持。

有什么想法为什么这不起作用吗?

编辑:解决了!

在这篇文章中找到答案 jquery link tag enable disable

var disableScroll = function(e){
if (e.keyCode === 40 || e.keyCode === 38) {
e.preventDefault();
return false;
}
};
// And then...
events.focus: function(){ $(window).on('keydown', disableScroll); }
events.blur: function(){ $(window).off('keydown', disableScroll); }

它有效!

最佳答案

在你的 keydown 处理程序中,对于向上和向下键,返回 false,如下所示:

'keydown' : function (e) {
if (e.keyCode === 40) { // Down arrow
that.events.moveOne('down');
}
if (e.keyCode === 38) { // Up arrow
that.events.moveOne('up');
}
return false;
}

此外,请确保此返回值传播到浏览器的 native onkeydown,具体取决于您使用的框架/方式。

关于javascript - jquery防止窗口滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8485667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com