Frage

Ich habe einen ui.slider und ändere zur Laufzeit die Min- und Max-Werte.Diese Änderungen werden jedoch erst in der Ansicht wiedergegeben, wenn ich die Werte auch danach festlege (wodurch Ereignisse ausgelöst werden, die nicht benötigt werden).Meiner Meinung nach sollte es die Ansicht aktualisieren, nachdem min und max eingestellt wurden.Gibt es eine einfache Problemumgehung, scheint eine Aktualisierungsmethode für den Schieberegler zu fehlen.

$("#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

Bearbeiten Dieses Problem wurde in jQuery UI 1.9 behoben

War es hilfreich?

Lösung

Ich weiß nicht, ob dies ein Fehler im Schieberegler der jQuery-Benutzeroberfläche ist, aber Sie können trotzdem den aktuellen Wert ändern (technisch gesehen den aktuellen Wert auf den aktuellen Wert setzen ...), um die Ansicht zu erzwingenerfrischt werden.Nach der Dokumentation würde dies Folgendes bedeuten:

$(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
});  

Andere Tipps

Das Problem mit der Neupositionierung des Handles wurde behoben. Rufen Sie einfach diese Funktion auf.

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.");
}

Festlegen des minimalen Schiebereglerwerts wie folgt:

$slide.slider("option", "min", 25); funktioniert bei mir nicht.

Stattdessen habe ich: $slide.slider("values", "0", 25); verwendet und alles funktioniert einwandfrei.

Verwenden Sie zum Festlegen des maximalen Schiebereglerwerts den $slide.slider("values", "1", 75);

Weitere Informationen zum Festlegen von Werten finden Sie in den API-Dokumenten - http://api.jqueryui.com / slider / # Optionswerte

Versuchen Sie dies.

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+'%');

Es könnte ein Versionsproblem sein, aber nichts, was ich mit den Optionen "min / max" versucht habe, hat funktioniert.Dies ist in Ordnung und wurde mit JQuery UI 1.10 getestet.Auf diese Weise können Sie entweder den Schieberegler oder die Zahlen verwenden, um den anderen zu ändern:

$("#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());
});

Sie können das HTML-Div in der jquery-Funktion als aktualisieren

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;

Setzen Sie dann neue Werte auf den Schieberegler

Bitte versuchen Sie Folgendes:

$("#Slider2").slider("value", 10, 1000); //10 = min and 1000 = max 

Sie müssen einen Verweis auf Ihr Schiebereglerobjekt behalten,

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

Dies ist alles in der Dokumentation aufgeführt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top