jQuery-UI滑块 - 如何禁用键盘输入?

时间:2010-05-27 14:50:07

标签: jquery jquery-ui slider

在jQuery-UI中滑动箭头键移动滑块手柄(在选择/单击手柄之后),这很不错,但我不希望滑块处理键盘(我在页面上使用箭头键为另一个purpouse)。

如何为jquery-ui滑块禁用键盘事件?

3 个答案:

答案 0 :(得分:22)

您可以从句柄中取消绑定keydown事件,以执行您想要的操作,如下所示:

$("#slider").slider(); //create slider
$("#slider .ui-slider-handle").unbind('keydown'); //disable keyboard actions

You can see a demo here

答案 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文档使得这种方法更加开发,导致代码模糊性降低。