Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery ui滑块-尝试禁用单个句柄_Jquery_Jquery Ui - Fatal编程技术网

jquery ui滑块-尝试禁用单个句柄

jquery ui滑块-尝试禁用单个句柄,jquery,jquery-ui,Jquery,Jquery Ui,我有一个ui范围滑块。我修改了脚本以添加额外的范围和句柄。我正在尝试禁用其中一个句柄(以显示始终作为计算一部分的整体的一部分,因此不应该是可变的,但需要是可见的段) 我在幻灯片中尝试过: 如果(ui.value==ui.values[3]&&ui.value>98){ off() } if(ui.value==ui.values[3]&&ui.value

我有一个ui范围滑块。我修改了脚本以添加额外的范围和句柄。我正在尝试禁用其中一个句柄(以显示始终作为计算一部分的整体的一部分,因此不应该是可变的,但需要是可见的段)

我在幻灯片中尝试过: 如果(ui.value==ui.values[3]&&ui.value>98){ off()

}
if(ui.value==ui.values[3]&&ui.value<98){
off();
}
同时使用off()和return false,句柄本身将被冻结,但它仍在计算值,就像它被移动一样

因此,我尝试禁用-我尝试过:
$('A.ui-slider-handle').eq(2).可拖动(false)//这让我可以把它拖到整个页面上

$('A.ui-slider-handle').eq(2).attr('disabled','disabled')
$('A.ui-slider-handle').eq(2).prop('disabled')


但这些也不起作用。有什么建议吗?我是新手,迷路了。谢谢

据我所知,jQueryUISlider小部件无法禁用单个句柄。但是,如果您不介意扩展jQueryUISlider小部件,可以添加此功能

在下面的代码中,我扩展了jQuery UI滑块小部件中的
\u mouseCapture
函数,以防止鼠标移动/选择禁用了
UI滑块句柄的句柄。它有点大,因为我必须复制现有的
\u mouseCapture
函数并添加几行。我用注释标记了我的插入

您可以测试此代码

我通过以下方式实现了这一目标:

 $ ('.ui-slider .ui-slider-handle:first').draggable( false);

在slider div中自己定义控制柄:

<div id="slider-range">
  <div class="ui-slider-handle first-handle"></div>
  <div class="ui-slider-handle second-handle"></div>
</div>
并设置相应的css样式以启用交互:

#slider-range.ui-slider .ui-slider-handle.first-handle {
    pointer-events: all;
}

除了第一个句柄之外,其他所有的都被禁用了

请提供示例。这对我来说很有效-做得好!您为我节省了解决这个问题的时间。这使我能够在整个屏幕上拖动句柄调用“draggable()”意味着还包括jQuery UI draggable代码:。
<div id="slider-range">
  <div class="ui-slider-handle first-handle"></div>
  <div class="ui-slider-handle second-handle"></div>
</div>
.ui-widget {
    pointer-events: none;
}
#slider-range.ui-slider .ui-slider-handle.first-handle {
    pointer-events: all;
}