Bootstrap Slider change value handler

后端 未结 4 1390
盖世英雄少女心
盖世英雄少女心 2021-01-04 01:04

I\'m using Bootstrap Slider, and I was wondering if there is any way to include a handler for a value change. I see that the documentation includes handlers for slideStart,

相关标签:
4条回答
  • 2021-01-04 01:09

    try this if on function didn't work for you like me

    $('#yourSlider').bind("slideStop", function (e)

    0 讨论(0)
  • 2021-01-04 01:13

    The accepted answer is not valid for range: true slider

    Here is double-slider check: https://jsfiddle.net/oayj5Lhb/

    For double slider: "change" event returns both newValue and oldValue objects. Keep in mind that 'change', 'slideStart', 'slideStop' events are triggered on mouse move (when I asked why the answer was "this is the proper way of implementation", for me it looks a bit strange). Here an example:

    $('#your-slider').slider().on('change', function(event) {
        var a = event.value.newValue;
        var b = event.value.oldValue;
    
        var changed = !($.inArray(a[0], b) !== -1 && 
                        $.inArray(a[1], b) !== -1 && 
                        $.inArray(b[0], a) !== -1 && 
                        $.inArray(b[1], a) !== -1 && 
                        a.length === b.length);
    
        if(changed ) {
            //your logic should be here
        }
    });
    

    Please note: [2, 1] and [1, 2] are considired to be equal because slider pair can be interchangeable.

    0 讨论(0)
  • 2021-01-04 01:19

    Instead of change event just use the slide. The promoter is not working well, so in Slide you can set value again.

            var thresholdSlider = $('#Threshold');
            thresholdSlider.slider({
                formater: function (value) {
                    return 'Current value: ' + value;
                }
            });
    
            thresholdSlider.slider().on('slide', function (ev) {
                thresholdSlider.slider('setValue', ev.value);
            });
    
    0 讨论(0)
  • 2021-01-04 01:23

    You can do the following steps:

    1) Use slideStart event to get the original value of your slider

    2) Use slideStop event to get the new value of your slider

    3) Compare this two value, if it's different then fire your code

    var originalVal;
    
    $('.span2').slider().on('slideStart', function(ev){
        originalVal = $('.span2').data('slider').getValue();
    });
    
    $('.span2').slider().on('slideStop', function(ev){
        var newVal = $('.span2').data('slider').getValue();
        if(originalVal != newVal) {
            alert('Value Changed!');
        }
    });
    

    Fiddle Demo

    0 讨论(0)
提交回复
热议问题