2014-02-14 95 views

回答

2

您的问题是使用innerHTML,无论何时使用它,它都会清除节点中的所有元素和事件,然后重新创建节点。

您可以使用它代替的innerHTML的:

dojo.create("button", { id: "hom", innerHTML:"hom"}, node); 

,这是你的工作DEMO

+0

我该怎么解决? – barteloma

+1

@bookmarker:检查我的答案和小提琴来解决它。 –

0

使用Dojo> 1.7语法,您可以将事件附加到这样的节点,请注意domConstruct.create返回创建的节点的引用:

var test1 = function(){ 
    var parent = dom.byId('buttons');     

    var test1 = domConstruct.create("button", {id:"test1", innerHTML:"test"}, parent); 

    on(test1, "click, keyup", function (event) { 
     if (event.type === 'click' || (event.type === 'keyup' && event.keyCode === 13)) { 
     console.log("test1 Button click")  
     }    
    });   
} 
相关问题