在jQuery-UI中滑动箭头键移动滑块手柄(在选择/单击手柄之后),这很不错,但我不希望滑块处理键盘(我在页面上使用箭头键为另一个purpouse)。
如何为jquery-ui滑块禁用键盘事件?
答案 0 :(得分:22)
您可以从句柄中取消绑定keydown
事件,以执行您想要的操作,如下所示:
$("#slider").slider(); //create slider
$("#slider .ui-slider-handle").unbind('keydown'); //disable keyboard actions
答案 1 :(得分:1)
您也可以自动执行上述解决方案:
$.prototype.slider_old = $.prototype.slider;
$.prototype.slider = function()
{
var result = $.prototype.slider_old.apply(this, arguments);
this.find(".ui-slider-handle").unbind("keydown"); // disable keyboard actions
return result;
}
只需在执行“$(...)。slider()”调用之前运行此代码,并且应该在滑块初始化后立即自动删除每个代码的keydown事件。
答案 2 :(得分:0)
我建议使用滑块的create
回调解除绑定keydown
,如下所示:
$( "#slider" ).slider({
create: function() {
disableKeydown();
}
});
function disableKeydown() {
$(".ui-slider-handle").unbind('keydown');
}
根据执行第一个答案的上下文,无法保证在初始化滑块后调用unbind
函数。第二个答案有助于解决这个问题,但我认为坚持jquery UI提供的API文档使得这种方法更加开发,导致代码模糊性降低。