Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.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_Jquery Ui Slider - Fatal编程技术网

jquery ui滑块-忽略/不逐步递增

jquery ui滑块-忽略/不逐步递增,jquery,jquery-ui,jquery-ui-slider,Jquery,Jquery Ui,Jquery Ui Slider,可能重复: 我正在为ui滑块使用非线性增量: $(function() { var trueValues = [5, 10, 20, 50, 100, 150, 165]; var values = [10, 20, 30, 40, 60, 90, 100]; var slider = $("#parkSlider").slider({ orientation: 'horizontal', range: "min", v

可能重复:

我正在为ui滑块使用非线性增量:

 $(function() {
    var trueValues = [5, 10, 20, 50, 100, 150, 165];
    var values =     [10, 20, 30, 40, 60, 90, 100];
    var slider = $("#parkSlider").slider({
        orientation: 'horizontal',
        range: "min",
    value: 40,
        slide: function(event, ui) {
            var includeLeft = event.keyCode != $.ui.keyCode.RIGHT;
            var includeRight = event.keyCode != $.ui.keyCode.LEFT;
            var value = findNearest(includeLeft, includeRight, ui.value);
            slider.slider('value', value);


        $("#amount").val(getRealValue(value));

            return false;
        },

    });
    function findNearest(includeLeft, includeRight, value) {
        var nearest = null;
        var diff = null;
        for (var i = 0; i < values.length; i++) {
            if ((includeLeft && values[i] <= value) || (includeRight && values[i] >= value)) {
                var newDiff = Math.abs(value - values[i]);
                if (diff == null || newDiff < diff) {
                    nearest = values[i];
                    diff = newDiff;
                }
            }
        }
        return nearest;
    }
    function getRealValue(sliderValue) {
        for (var i = 0; i < values.length; i++) {
            if (values[i] >= sliderValue) {
                return trueValues[i];
            }
        }
        return 0;
    }
});
$(函数(){
var trueValues=[5,10,20,50,100,150,165];
var值=[10,20,30,40,60,90,100];
变量滑块=$(“#驻车滑块”)。滑块({
方向:“水平”,
射程:“分钟”,
价值:40,
幻灯片:功能(事件、用户界面){
var includeLeft=event.keyCode!=$.ui.keyCode.RIGHT;
var includeRight=event.keyCode!=$.ui.keyCode.LEFT;
var值=findNearest(includeLeft、includeRight、ui.value);
slider.slider('value',value);
$(“#金额”).val(getRealValue(value));
返回false;
},
});
函数findNearest(includeLeft、includeRight、value){
var最近=空;
var diff=null;
对于(变量i=0;i=sliderValue){
返回真值[i];
}
}
返回0;
}
});
我想忽略165处的值,而不是步进到该增量-因此滑块只能在150处最大,尽管150不是滑块的最大值

图形可以更好地解释:


其中,我希望滑块控制柄的位置停止在150值,而不是步进到165值。(我知道我可以设置滑块的最大值,但这是错误的行为,因为滑块手柄会延伸超过150个刻度线)

在滑块选项中:

slide: function(event, ui) {
    if (ui.value > 150) {
        return false;
    }
}  

因为这个答案的方法有些不同,所以我对这个问题的回答与我对另一个问题的回答(现在已经更新)完全相同。