【发布时间】:2011-12-13 07:22:27
【问题描述】:
我正在 jquery 中开发选择菜单替换。
首先,我只需将tabindex="0" 添加到容器中,就可以使新的选择菜单具有焦点。
然后,我禁用对原始选择菜单的关注,并将焦点放在新的选择菜单上。
当新的焦点集中并按下向上和向下箭头时,选项会相应更改,但存在一个大问题。当您按下箭头时,身体也会移动。
到目前为止,我尝试了所有这些解决方案,但都没有成功:
$(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); }
有效!
【问题讨论】:
-
也许这是
event.preventDefault();在处理任何可能导致窗口滚动的事件的工作... -
您应该将此添加为您自己问题的答案。
标签: javascript jquery scroll