事件处理程序上的Dojo不适用于多个按钮[已关闭]

vxqlmq5t  于 2022-12-16  发布在  Dojo
关注(0)|答案(2)|浏览(136)

**已关闭。**此问题需要debugging details。当前不接受答案。

编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
三年前关闭了。
Improve this question
我在我的应用程序中有一个div元素,我在其中添加按钮,但只处理最后一个按钮事件。代码在jsfiddle

ekqde3dh

ekqde3dh1#

您的问题是使用innerHTML,无论何时使用它,它都会清除节点中的所有元素和事件,然后重新创建节点,而不删除您的事件。
你可以用这个代替innerHTML:

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

这是您正在使用的DEMO

hs1rzwqc

hs1rzwqc2#

使用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")    
      }               
   });          
}

相关问题