Как обновить jQuery UI Slider после установки минимальных или максимальных значений? - PullRequest
25 голосов
/ 13 июня 2011

У меня есть ui.slider и меняю его минимальное и максимальное значения во время выполнения.Но эти изменения отражаются только в представлении, когда я устанавливаю значения и после этого (что приводит к запуску ненужных событий).На мой взгляд, он должен обновить вид после установки мин и макс тоже.Есть ли простой обходной путь, похоже, что для ползунка отсутствует метод обновления.

$("#something").slider({
    range: true,
    values: [25, 75],
    min: 0,
    max: 100
});
$("#something").slider("option", "min", 25); // left handle should be at the left end, but it doesn't move
$("#something").slider("option", "values", [25, 75]); // the left handle is now at the left end, but doing this triggers events

Редактировать Эта проблема была исправлена ​​в jQuery UI 1.9

Ответы [ 8 ]

29 голосов
/ 13 июня 2011

Я не знаю, является ли это ошибкой в ​​ползунке пользовательского интерфейса jQuery, но в любом случае, вы можете изменить текущее значение (технически, установив текущее значение на текущее значение ...), чтобы заставить представлениебыть обновленным.После документации это будет означать, что вы сделаете что-то вроде этого:

$(function() { 
    var $slide = $("#something").slider({
        range: true,
        values: [25, 75],
        min: 0,
        max: 100
    });
    $slide.slider("option", "min", 25); // left handle should be at the left end, but it doesn't move
    $slide.slider("value", $slide.slider("value")); //force the view refresh, re-setting the current value
});  
2 голосов
/ 09 апреля 2012

Решена проблема с перемещением дескриптора ... просто вызовите эту функцию ..

function resetSlider(){
    $("#slider-fill").attr('value',maxPrice);
    $("input[type='range']").slider( "refresh" );//refresh slider to max value
    $(".ui-slider-handle").css("left","100%");
    console.log("Slider Reset Done.");
}
1 голос
/ 12 августа 2014

Установка минимального значения ползунка, например:

$slide.slider("option", "min", 25);, не работает для меня.

Вместо этого я использовал: $slide.slider("values", "0", 25); и все работает нормально.

Для установки максимального значения ползунка используйте $slide.slider("values", "1", 75);

Для получения дополнительной информации о значениях настройки см. Api docs - http://api.jqueryui.com/slider/#option-values

0 голосов
/ 14 июля 2016

Пожалуйста, попробуйте это:

$("#Slider2").slider("value", 10, 1000); //10 = min and 1000 = max 
0 голосов
/ 14 января 2016

Вы можете обновить html div в функции jquery как

var d='<div class="row grid_slider"><div><p>Grid With time in 24 hour format</p><input type="text" class="range_time24" value="" name="range" /></div></div>';document.getElementById("slider").innerHTML=d;

Затем установите новые значения для ползунка

0 голосов
/ 26 февраля 2014

Это может быть проблема версии, но ничего из того, что я пробовал с опциями "min / max", не работаетЭто нормально и протестировано с JQuery UI 1.10.Таким образом, вы можете использовать либо ползунок, либо цифры, чтобы изменить другой:

$("#mySlider").slider({range: true, min: 0, max: 100, values: [ 0, 100 ], step: 10,
   slide: function( event, ui ) {
      $("#mySliderMin").val( ui.values[ 0 ]);
      $("#mySliderMax").val( ui.values[ 1 ]);
   }
});
$("#mySliderMin").val($("#mySlider").slider( "values", 0 ));
$("#mySliderMax").val($("#mySlider").slider( "values", 1 ));
$("#mySliderMin, #mySliderMax").change(function () {
   $("#mySlider").slider("values", 0, $("#mySliderMin").val());
   $("#mySlider").slider("values", 1, $("#mySliderMax").val());
});
0 голосов
/ 22 апреля 2013

Попробуйте это.

valPercent = (current_slide_value - min_value) / (max_value - min_value) * 100;     
parentElem.find('.ui-slider-range').css('width', valPercent+'%');    
parentElem.find('.ui-slider-handle').css('left', valPercent+'%');
0 голосов
/ 13 июня 2011

Вам необходимо сохранить ссылку на объект-слайдер,

var slider = $("#something").slider({
               range: true,
               values: [25, 75],
               min: 0,
               max: 100
             });
slider.slider("option", "min", 25);

Это все перечислено в Документации

...