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」が含まれます)。したがって、次のようにそれらから_charを切り取るための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 に答える