Mobiscroll排序轮未正确显示的值

时间:2012-10-23 19:46:41

标签: mobiscroll

我已经将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
            });
        });

1 个答案:

答案 0 :(得分: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函数来从它们中删除_ char:

        $('#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;
            }
        });

我希望这有帮助!