2009-03-07 5 views
12

jQuery 1.3.2/jQueryUI 1,7/SliderjQuery UI Slider - gleiten kann nicht auf 0

$("#slider").slider({ 
    range: "min", 
    min: 0, 
    max: 40, 
    value: 0, 
    slide: function(event, ui) { 
     CalculateOrder(event, ui); 
    } 
}); 

es beginnt ganz gut, aber nachdem ich den Regler bewegen, kann ich es nicht auf 0 zurück , ui.Value ist 1 wenn ich es ganz nach links schiebe.

Ich habe versucht

min:-1 

Einstellung dies die ui.Value setzt auf -1, wenn ich es auf -1 schieben, aber wenn ich bei 0 bin die ui.Value ist noch 1.

Irgendwelche Ideen?

Antwort

19

Was Sie wollen, ist den Wert zu erhalten, wenn der Slider gestoppt hat, nicht während der Folie. Aus meiner Erfahrung wird das Dia-Ereignis Sie die vorherige Position des Schiebereglers erhalten. Stop gibt Ihnen den Wert des Schiebereglers, auf den der Benutzer ihn verschieben kann.

$("#slider").slider({ 
    range: 'min', 
    min: 0, 
    max: 40, 
    value: 1, 
    step: 10, 
    slide : function(event, ui){ 
     console.log("previous value:"+ $(this).slider('option', 'value')); 
    }, 
    stop: function(event, ui){ 
     console.log("Current value:"+ $(this).slider('option', 'value')); 
    } 
}); 
+0

danke, stop: did it !!! –

+20

Eigentlich gibt es einen subtilen Unterschied in all dem (ich bin selbst in das reingerannt). Sie sollten "ui.value" verwenden, um den Wert in Ihrem Folienereignishandler abzurufen. Das gibt Ihnen den * aktuellen * Wert. Sie erhalten den vorherigen Wert, wenn Sie ihn abrufen, indem Sie den Schieberegler nach seinem Handle-Wert fragen (z. B. .slider ('value') oder .slider ('option', 'value') usw.). Dies ist wichtig, wenn Sie eine Beschriftung dynamisch aktualisieren möchten, während der Benutzer den Griff verschiebt. Zusammenfassung: Wenn Sie ui.value verwenden, um den Wert im Dias-Ereignishandler abzurufen, müssen Sie keinen stop-Ereignishandler verwenden. – chrisrbailey

+1

Chris Kommentar war direkt auf das Geld. Wenn Sie ui.value in Ihrem "slide" -Handler verwenden, können Sie den aktuellen Wert des Schiebereglers im Gegensatz zum vorherigen Wert abrufen. –