Jquery ui slider with string values?

iLaYa  ツ picture iLaYa ツ · Jul 5, 2012 · Viewed 7.7k times · Source

I am working with jQuery UI slider.

Here is the code i am using:

$(function() {
        $( "#slider" ).slider({
            value:1,
            min: 0,
            max: 5,
            step: 1,
            slide: function( event, ui ) {
                $( "#amount" ).val( "$" + ui.value );
            }
        });
        $( "#amount" ).val( "$" + $( "#slider" ).slider( "value" ) );
    });

There will be 5 steps and I'd like to show the strings in each step instead of the numbers:

1=very sad
2=sad
3=not so sad
4=happy
5=very happy

How can I do this ?

Answer

Frédéric Hamidi picture Frédéric Hamidi · Jul 5, 2012

You can put your step labels in an array, then use the slider's value as an index into that array:

var steps = [
    "very sad",
    "sad",
    "not so sad",
    "happy",
    "very happy"
];

$(function() {
    $("#slider").slider({
        value: 1,
        min: 0,
        max: 4,
        step: 1,
        slide: function(event, ui) {
            $("#amount").val(steps[ui.value]);
        }
    });
    $("#amount").val(steps[$("#slider").slider("value")]);
});