2011-10-07 42 views
2

在jQuery的,如果我想按鈕樣式附加到任何標籤,我可以這樣做:道場附加按鈕像jQuery

$("a").button(); 

如何使用道場任何標記附上按鈕樣式?

回答

1

這是你的jQuery的道場可能相當於:

// Select all 'a' tags. 
dojo.query('a').forEach(function(element) { 

    // Attach a button to each 'a' tag. 
    var button = new dijit.form.Button({ 
     onClick: function(){ location.href = element.href; } 
    }, element); 
    button.startup(); 
}); 

演示在這裏:http://jsfiddle.net/rLtNq/。請注意包含claro.css文件,並且如mydoghasworms所述,您需要dojo.require按鈕類。

+0

在閱讀mydoghasworms的回答後,我想出了一個與您使用的解決方案非常相似的解決方案。雖然mydog的回答非常詳細和好,但你正是我所期待的。謝謝。 – Fatmuemoo

3

Dojo的方式是聲明式或編程式創建元素。下面是使用的dojoType屬性創建按鈕的聲明性例子:

<input id="button1" dojoType="dijit.form.Button" label="Do it!"/> 

這裏是一個編程例子,由此產生一個按鈕,並插入到DOM:

var button = new dijit.form.Button({ label: "Click me!"}, "node_id"); 

的對象作爲傳遞第一個參數包含實例化控件的屬性(在這種情況下爲我們的按鈕)。第二個參數是新元素將插入(或附加到)的DOM節點,而原始節點幾乎被替換)。

另一個例子(專爲按鈕,但概念是相似的,見http://dojotoolkit.org/reference-guide/dijit/form/Button.html#dijit-form-button

至於你提到使用「任何」標籤的問題(不知道這是你都拿到什麼),你可以使用這些方法定義任何帶有ID的HTML標記並用按鈕替換它。例如:

<h3 id="button1" dojoType="dijit.form.Button" label="Do it!"></h3> 

也將被Dojo解析並工作。

如果你是Dojo的新手,你應該知道,如果你來自jQuery,這種方法是完全不同的。 Dojo不是在HTML中包含Javascript文件,而是使用dojo.require()來包含代碼的模塊化系統,因此,例如,您必須在包含dojo後指定dojo.require(「dijit.form.Button」) .js文件(並指定以下屬性

djConfig="parseOnLoad: true" 
在腳本標籤

爲包括的dojo.js有自動解析dijit的小部件)。