事件处理程序上的dojo不适用于多个按钮

时间:2014-02-14 13:40:40

标签: javascript javascript-events dojo

我的应用程序中有一个div元素,我在其中添加了按钮。但只有最后一个按钮事件。代码位于jsfiddle

2 个答案:

答案 0 :(得分:2)

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

你可以使用它而不是innerHTML:

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

这是你的工作DEMO

答案 1 :(得分: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")    
      }               
   });          
}