0

我已将 Scroller 值定义为从 15 分钟间隔开始的小时数,并且轮子的值应为 0.25 0.5 0.75 1 1.25...23.75 但它对值进行排序,例如首先显示整数然后显示小数的值,所以它就像 1 2 3 ...23 0.25 .5.0.75 ...23.75 我怎样才能休息以按增量顺序显示数字。

$(function () {
            var hours = [{}];
            for (var i = 0; i < 3; i++) {
                var wheel = {};
                for (var j = 0; j < 24; j += .25) {
                    wheel[j] = j;
                }
                hours[0]['Hours'+i] = wheel;
            }

            $('#i').scroller({
                theme: 'default',
                display: 'inline',
                mode: 'mixed',
                wheels: hours,
                height: 40
            });
        });
4

1 回答 1

1

发生这种情况是因为 wheel 变量是一个对象,它的键是数字(这次)。您可以通过在每个键前添加“_”字符来解决此问题。

            var hours = [{}];
            for (var i = 0; i < 3; i++) {
                var wheel = {};
                for (var j = 0, k=0; j < 24; j += .25,k++) {
                    wheel['_'+j] = j;
                }
                hours[0]['Hours'+i] = wheel;
            }

这样排序就可以了,但结果(在输入字段中)也将包含“_”字符。(例如,如果您选择 3.25 1.5 4.75,则输入将包含“_3.25 _1.5 _4.75”)。因此,您必须编写一个 formatResult 函数来从它们中删除 _ 字符,如下所示:

        $('#i').scroller({
            theme: 'default',
            display: 'inline',
            mode: 'mixed',
            wheels: hours,
            height: 40,
            formatResult: function (d){
                var str = '';
                for(var i = 0; i < d.length; i++)
                    str += d[i].substring(1) + ' ';
                return str;
            }
        });

我希望这有帮助!

于 2012-10-24T07:09:06.963 回答