【问题标题】:Jquery slider allocate label words to valuesJquery滑块将标签词分配给值
【发布时间】:2012-01-12 11:44:39
【问题描述】:

这有点像这里发布的问题:Yes or no toggle or slider - 但我无法在此示例中获得解决方案。

我有一个水平增量范围滑块,我想对其进行修改,以便将标签解码为小 - 中 - 大值 1 - 2 - 3

我尝试使用数组进行解码,但无法正常工作。

这是我目前所拥有的:

    <script>
        $(function() {
            $( "#slider-range" ).slider({
                range: true,
                min: 1,
                max: 3,
                step: 1,
                values: [ 2, 3 ],
                slide: function( event, ui ) {
                    $( "#amount" ).val( ui.values[ 0 ] + " - " + ui.values[ 1 ] );
                }
            });
            $( "#amount" ).val( $( "#slider-range" ).slider( "values", 0 ) +
                " - " + $( "#slider-range" ).slider( "values", 1 ) );
        });
    </script>

因此,如果选择了位置 2 - 3(默认情况下),标签将显示为“中 - 大”。

任何帮助或指导将不胜感激!

谢谢

【问题讨论】:

  • 好的 - 我想我做到了:["small","medium","large"][ui.values[ 0 ]-1]

标签: jquery jquery-ui jquery-slider


【解决方案1】:

这个怎么样?

它使用映射器对象而不是数组,但还包含一个返回字符串而不是自己创建的函数:

$(function() {

    // mapper    
    var valueMap = {
        1 : "small",
        2 : "medium",
        3 : "large",
        getText : function(arr) {
            return this[arr[0]] + " - " + this[arr[1]];
        }
    };

    // initial range slider values
    var initial = [2, 3];

    // initialize slider
    $( "#slider-range" ).slider({
        range: true,
        min: 1,
        max: 3,
        step: 1,
        values: initial,
        slide: function( event, ui ) {
            $("#amount").val(valueMap.getText(ui.values));
        }
    });

    // initialize value display
    $("#amount").val(valueMap.getText(initial));

});

【讨论】:

    猜你喜欢
    • 2016-05-04
    • 1970-01-01
    • 1970-01-01
    • 2021-04-19
    • 2013-08-11
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    相关资源
    最近更新 更多