jQuery Slider 如何将 handle 锁定到位?

标签 jquery slider handle slide

我有一个带有两个 handle 的 jQuery slider 。我希望根据第二个 handle 将第一个 handle 锁定到位。

我尝试检查滑动事件上的值,然后将第一个 handle 设置回其锁定位置,但它基本上忽略了我设置的值并继续滑动。

我已经让它与 stop 事件一起工作,但它非常笨重。

我正在使用从服务器端生成的 JSON 对象来填充我的 slider 。这是我的停止事件代码:

   $(clientID).slider({
        range: true,
        max: slider.max,
        values: [slider.minVal, slider.maxVal],
        change: afterSliderChanged,
        stop: onSliderStop
    });

    function onSliderStop(event, ui) {
    for (i in sliders.sliders) {
        var slider = sliders.sliders[i];
        var clientID = slider.cellType + "_" + slider.objectID + "_null";

        if (this.id == clientID) {
            if (ui.values[0].toString() == slider.max.toString()) {
                var values = $(this).slider('option', 'values');
                $(this).slider('option', 'values', [parseInt(slider.max - 1), parseInt(values[1])]);
            }
        }
    }

大家有什么想法吗?

如果需要详细说明,请告诉我。

谢谢! 丹尼尔·布鲁尔

最佳答案

这是一个快速而肮脏的示例,说明如何锁定与正在拖动的 handle 相关的另一个 handle :

var offset = 40;
$('#slider').slider({
    range: true,
    max: 600,
    values: [40, 80],
    slide: function(e,ui){
        if (ui.value == ui.values[0]) {
            $(this).slider('values',1, ui.value+offset);
        } else {
            $(this).slider('values',0, ui.value-offset);
        }
    }
});

应该帮助您弄清楚如何做您想做的事情。

工作示例:http://jsfiddle.net/cBHdD/

关于jQuery Slider 如何将 handle 锁定到位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2193809/

相关文章:

javascript - 如何在单选按钮的现实场景中确定确切的元素类型/代码段

php - jQuery 中的 $.post() 不工作

javascript - 如何使用音量 slider 控制轨道?

matlab - 常量属性中方法的函数句柄

c# - 子进程和父进程之间共享值

c# - 在运行时用另一个窗口控件替换窗口控件

javascript - 温泉用户界面 : Back and Menu Button

Javascript this.id 区分同一类的对象

ios - 使用 slider 的模糊效果无法正常工作

android - 在 Android 中实现一个 slider (SeekBar)