2013-02-13 67 views
0

我有以下靜態的div:如何使用Dojo動態添加Dojo按鈕?

<body> 
     <div id="parent"> 

    </div> 
    </body> 

<script> 
    dom.byId('parent').innerHTML +="<input type='submit' data-dojo-type='dijit/form/Button' onClick='test(this)' id='edit"+1+"' label='Edit' />"; 
    dom.byId('parent').innerHTML +="<input type='submit' data-dojo-type='dijit/form/Button' onClick='test(this)' id='edit"+2+"' label='Edit' />"; 

</script> 

兩個創建按鈕的,但他們看起來像普通的HTML不道場。

回答

4

最短的答案是dojo/parser::parse(domNode)

var parent1 = dom.byId("parent1"); 
parent1.innerHTML += '<input type="submit" data-dojo-type="dijit/form/Button" onClick="test(this)" id="edit1" label="Edit 1">'; 
parent1.innerHTML += '<input type="submit" data-dojo-type="dijit/form/Button" onClick="test(this)" id="edit2" label="Edit 2">'; 
parser.parse(parent1); 

即使我不能建議。不要使用innerHTML,它屬於IE6的世界。創建dijit的編程方式而不是:

var parent2 = dom.byId("parent2"); 

var button3 = new Button({ label: "Button 3" }); 
button3.startup(); 
button3.placeAt(parent2); 
button3.on("click", test); 

var button4 = new Button({ label:"Button 4"}); 
button4.startup(); 
button4.placeAt(parent2); 
button4.on("click", function(event) { 
    test(this); // `this` points to the button 
}); 

看到它在行動:http://jsfiddle.net/phusick/9JCAj/

+0

不會這點的處理功能? – nozzleman 2013-02-13 09:40:17

+0

不,請檢查[jsFiddle](http://jsfiddle.net/phusick/9JCAj/)中的控制檯輸出。 – phusick 2013-02-13 09:43:20