如何使用Dojo动态添加Div中的Dojo按钮?

时间:2013-02-13 02:59:38

标签: dojo

我有以下静态div:

    <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而不是DOJO。

1 个答案:

答案 0 :(得分: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/