【问题标题】:jQuery UI slider set value from data attributejQuery UI 滑块从数据属性中设置值
【发布时间】:2014-01-02 16:18:19
【问题描述】:

嘿,我有一些名为“lp-slider”的 jquery 滑块设置如下:

                 <div class="xs-col-12">
                        <div class="col-xs-2 label label-default">Grit</div>
                        <div class="col-xs-9">
                            <div class="lp-slider" data-lpScore="30"></div>
                        </div>
                        <div class="col-xs-1"><img class="slider-img" src="images/close-white.png"></div>
                        <br class="clear-fix">
                    </div>
                    <div class="xs-col-12 spacer-med">
                        <div class="col-xs-2 label label-default">Self-efficacy</div>
                        <div class="col-xs-9">
                            <div class="lp-slider" data-lpScore="30"></div>
                        </div>
                        <div class="col-xs-1"><img class="slider-img" src="images/close-white.png"></div>
                        <br class="clear-fix">
                    </div>
                    <div class="xs-col-12 spacer-med">
                        <div class="col-xs-2 label label-default">Sociability</div>
                        <div class="col-xs-9">
                            <div class="lp-slider" data-lpScore="30"></div>
                        </div>
                        <div class="col-xs-1"><img class="slider-img" src="images/close-white.png"></div>
                        <br class="clear-fix">
                    </div>

我想对它们运行一个 each 语句,以便它获取数据属性并使用它来设置滑块值。我试过这个,但我似乎不太明白如何让它工作。它设置了滑块,但值部分无法正常工作:

$(".lp-slider").each(function() {
    var value = $(this).data("lpScore");
    $(this).slider({
        value:value,
        range:"min",
        min:1,
        max:100,
        step:1
    });
});

【问题讨论】:

    标签: jquery jquery-ui jquery-ui-slider


    【解决方案1】:

    要使用 jQuery 的 data() 获取数据属性,您必须将其写成小写字母,例如 lpscore

    这里深入解释数据Using data attributes with jQuery所应用的规则

    代码:

    $(".lp-slider").each(function () {
        var value = $(this).data("lpscore");
        $(this).slider({
            value: value,
            range: "min",
            min: 1,
            max: 100,
            step: 1
        });
    });
    

    演示:http://jsfiddle.net/IrvinDominin/G3vy6/

    【讨论】:

    • 哇,哈哈,这让我想扇自己一巴掌,谢谢!
    • 是的,这是一个很好的 jQuery 数据陷阱:-\
    • 您是如何根据链接文档得出这个结论的?
    • @isherwood 来自 data-lpScore="30" 和 var value = $(this).data("lpScore");
    • 我不确定这如何回答我的问题。无论如何,我在这里得到了一些澄清:stackoverflow.com/questions/7641551/…
    猜你喜欢
    • 1970-01-01
    • 2017-01-03
    • 1970-01-01
    • 2018-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多