2013-02-13 7 views
0

У меня есть следующий статический DIV:Как добавить кнопку Dojo в Div динамически с помощью 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. Создание dijits программно вместо:

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

+0

нет, проверьте вывод консоли в [jsFiddle] (http://jsfiddle.net/phusick/9JCAj/) – phusick