【问题标题】:Avoid decimal values in dijit/form/HorizontalSlider避免 dijit/form/Horizo​​ntalSlider 中的小数值
【发布时间】:2013-03-27 20:44:13
【问题描述】:

dijit/form/HorizontalSlider 更改时,我在文本框中获取值。这些值是十进制的,例如51.66777777。我只想要51

<div id="horizontalSlider"></div>
<input type="text" id="sliderValue" data-dojo-type="dijit.form.TextBox" style="width:190px;" onkeyup="getSliderTxtBoxValue();">

var slider = new HorizontalSlider({
                    name: "horizontalSlider",
                    value: 1,
                    minimum: 1,
                    maximum: 500,
                    discreteValues: 10,
                    intermediateChanges: true,
                    style: "width:200px;",
                    onChange: function(value){
                        dom.byId("sliderValue").value = value;
                    }
                }, "horizontalSlider");

另见:

http://dojotoolkit.org/reference-guide/1.8/dijit/form/HorizontalSlider.html

【问题讨论】:

    标签: javascript slider dojo


    【解决方案1】:

    你见过脊椎穿刺吗?这个到 11 点!

    下面是有效的代码:

    value: 0,
    minimum: 0,
    maximum: 500,
    discreteValues: 11,
    

    您需要 11 个,因为您需要 11 个离散值:

    0,50,100,150,200,250,300,350,400,450,500

    我创建了一个fiddle for this problem

    【讨论】:

    • 明白了,谢谢。你能告诉我discreteValues: 11 是如何避免使用小数值的吗?
    • 这是一句经典的程序员说法,"Programmers are always off by one"。在这种情况下,如果小部件指定一个增量而不是多个离散值,那会更酷。增加 50 更有意义。需要注意的一件事是500/9=55.555。如果您使用discreteValues: 10,这就是您的增量,因为您需要将零作为值包含在内。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多