2011-08-07 40 views
2

我有Dojo滑塊,我需要從0到24小時(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

沒有真正回答我的問題。你有一個onChange函數可以處理各種與HTML中的任何內容無關的事情。並調用一個函數「set_time_labels」,我看不到它的定義。這些東西做什麼?從頭開始製作一個最低限度的例子,可以運行或失敗。 – 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); 

..但afaik目前還沒有。

+0

作品,感謝FRODE! – Damir