1

我有以下静态 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。

4

1 回答 1

5

最短的答案是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/

于 2013-02-13T09:15:40.767 回答