2011-08-07 22 views
2

私はDojoスライダーを持っており、0から24h(0,1,2、... 24)の値を設定する必要があります。Dojoスライダーの問題 - スライダーで数値を追加する方法

<div id="vertical_monday" style="float: left;"></div> 

と、次のように作成します: 私はこれを持って

var vertical_monday = dojo.byId("vertical_monday"); 
       var rulesNodeMonday = document.createElement('div'); 
       vertical_monday.appendChild(rulesNodeMonday); 

       var sliderRulesMonday = new dijit.form.VerticalRule({ 
        count: 24, 
        style: "width:5px;" 
       }, 
       rulesNodeMonday); 
       var slider = new dijit.form.VerticalSlider({ 
        name: "vertical_monday", 
        value: 0, 
        minimum: 1440, 
        maximum: 0, 
        pageIncrement:100, 
        showButtons:true, 
        slideDuration:289, 
        discreteValues: 289, 
        intermediateChanges:true, 
        style: "height:500px;", 
        onChange: function(value) { 
         //dojo.byId("sliderValueMonday").value = value; 
         set_time_labels('mon',used_length['mon'],value); 

         val['mon']=value; 
         var a=(500*(value-used_length['mon']))/1440; 



         var temp_id='mon_'+temp_daily_plan['mon']; 
         $('#'+temp_id).css('height',a); 
        } 
       }, 
       vertical_monday); 

を、それは数字を持っていません。数字を追加するには?

+0

set_time_labelsは何をしますか?私はそれを見ることができません。また、INPUTボックスに値を設定する行をコメントアウトしたようです。それは働いたのですか? HTMLでは、値を表示したいオブジェクトはどこにありますか? FirefoxでFirebugで実行すると、JSエラーが出ますか? – Spacedman

+0

@Spacedman私は24にカウントを設定して、私は24 - を参照してください、しかし私は-1h -2h ....を持ってほしい-24h。 – Damir

+0

本当に私の質問には答えません。あなたはあなたのHTMLに何も関係しないあらゆる種類のことをするonChange関数を持っています。そして、 "set_time_labels"という関数を呼び出して、私はその定義を見ることができません。これらのことは何をしていますか?最初から始め、動作するか失敗するMINIMALの例を作ります。 – Spacedman

答えて

2

これはすごく汚れた方法ですが、推奨されているかどうかは不明です。

ルーラーと同じように、ラベルのコンテナを追加します。

var labelsNodeMonday = document.createElement("div"); 
vertical_monday.appendChild(labelsNodeMonday); 

はその後dijit.form.VerticalRuleLabelsインスタンスを作成し、そのノードに置き、明示的に配列としてラベルを提供する:

var labelsMonday = new dijit.form.VerticalRuleLabels({ 
    labels: ["1h", "2h", "3h", "4h"] //.. and so on 
}, labelsNodeMonday); 

または代わりに、あなた自身を繰り返して好きではない場合。

var labelsMonday = new dijit.form.VerticalRuleLabels({ 
    getLabels: function() { 
     for(var labels = [], i = 1; i <=24; i++) labels.push(i+"h"); 
     return labels; 
    }, 
}, labelsNodeMonday); 

また、私はこれがコーシャーな方法かどうかわかりません。理想的には、次の行に沿って何かがあるはずです:

var labelsMonday = new dijit.form.VerticalRuleLabels({ 
    minimum: 1, maximum: 24, step: 1, 
    formatLabel: function(value) { return value + "h"; } 
}, labelsNodeMonday); 

..しかし現時点ではありません。

+0

作品、おめでとうございます! – Damir

関連する問題