2011-08-07 6 views
2

Dojo 슬라이더가 있으며 0에서 24 h (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

@ 스페이스 만 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

관련 문제