2011-07-27 78 views
1

我不擅長JavaScript。但最近我被賦予了創建滑塊的任務。我以爲我可以用dojo創建一個。當我進入jsp頁面時,我看到在同一個jsp文件中已經有了dojo,它看起來有點像這樣。如何創建道場滑塊

<script language="JavaScript" type="text/javascript" src="js/dojo/dojo-release-1.3.1/dojo/dojo.js" djConfig="parseOnLoad: true, locale: '<%=request.getLocale().getLanguage()%>'"></script> 

window.onload = function() { 
     dojo.require("dojo.number"); 
    }; 

我不知道這意味着什麼。

我的問題是,我該如何創建一個滑塊,這個版本的dojo已經在文件中使用了。任何參考鏈接,如果高度讚賞。

此外,網絡項目具有以下結構用於道場圖書館(見SnapShot)enter image description here

+1

在dojo-release-1.3.1下還有一個名爲dijit的文件夾,對吧? – Frode

+0

不..沒有該名稱的文件夾。 :( –

+1

好吧,如果你想使用Dojo的滑動部件,恐怕你會需要它,它應該在發佈中,所以我猜測它已被別人在你的項目上工作的其他人刪除:) – Frode

回答

2

由於我已經有了這個jsfiddle,我會假設我的評論的答案是:-)請嘗試以下操作。裏面你的window.onload函數中添加幾行:

window.onload = function() { 
    dojo.require("dojo.number"); 

    dojo.require("dijit.form.HorizontalSlider"); 
    dojo.require("dijit.form.HorizontalRule"); 
    dojo.require("dijit.form.HorizontalRuleLabels"); 


    dojo.addOnLoad(function() { 
     dojo.parser.parse() 
    }); 
} 

dojo.require電話告訴道場從服務器上加載一些更多的JavaScript。由於我們想製作滑塊,因此Dojo需要滑塊的JavaScript文件。

dojo.addOnLoad調用告訴Dojo在其onLoad事件中添加一個函數。我們已經在window.onload之內,但由於我們正在從服務器加載更多的JavaScript,我們必須使用Dojo自己的onLoad事件來等待新腳本加載。

我們想要在Dojo的onLoad事件中調用的函數是dojo.parser.parse。這個函數掃描你的HTML,並且如果它檢測到任何Dojo標記,它會將它變成很好的小部件(例如像滑塊)。這意味着我們需要在HTML中使用一些Dojo標記,因此將以下內容添加到希望滑塊出現的HTML中。

<div dojoType="dijit.form.HorizontalSlider" maximum="100" minimum="0" 
    style="width:250px" id="slider1" name="slider1"> 
     <div dojoType="dijit.form.HorizontalRule" style="height: 4px" count="10"></div> 
     <div dojoType="dijit.form.HorizontalRuleLabels" count="5"></div> 
</div> 

Dojo的解析器將與一個美麗的滑塊代替這一點,這裏有一個我們必須做件事 - 確保我們有正確的CSS加載。我們想要的文件名爲「tundra.css」(實際上,您可以使用其他樣式,但苔原非常好)。添加進口在你的CSS,或爲的exaple

<link rel="stylesheet" href="js/dojo/dojo-release-1.3.1/dijit/themes/tundra/tundra.css"> 

爲了確保苔原樣式應用到你的滑塊,還可以添加class="tundra"你的身體標記。

希望這會有所幫助。看看這個鏈接瞭解更多線索和想法:http://archive.dojotoolkit.org/dojo-2010-05-01/dojotoolkit/dijit/tests/form/test_Slider.html(這不是真的1.3.1,但它應該是相似的)。

+0

你認爲將dojoType屬性更新爲更新的數據dojo類型是個好主意? – hugomg

+0

@missingno我不認爲他會使用他使用的Dojo版本。這是一個1.6的功能,iirc。 – Frode