我正在 jquery 中开发一个选择菜单替换。
首先,我必须通过添加来使新的选择菜单可聚焦tabindex="0"
到容器。
然后,我禁用原始选择菜单的焦点并将焦点放在新菜单上。
当新的焦点被聚焦并按下向上和向下箭头时,选项会相应改变,但有一个大问题。当你按下箭头时,身体也会移动。
到目前为止,我尝试了所有这些解决方案,但没有运气:
$(window).unbind('scroll');
$(document).unbind('scroll');
$('body').unbind('scroll');
$(window).unbind('keydown');
$(document).unbind('keydown');
检查这里的代码http://pastebin.com/pVNMqyui http://pastebin.com/pVNMqyui此代码来自 Ideal Forms 的开发版本http://code.google.com/p/idealforms http://code.google.com/p/idealforms我即将发布,带有键盘支持。
有什么想法为什么这不起作用吗?
EDIT: Solved!
在这个帖子里找到了答案jquery链接标签启用禁用 https://stackoverflow.com/questions/1169625/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;
}
另外,请确保此返回值传播到浏览器的本机 onkeydown,具体取决于您使用的框架/方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)