似乎我无法使用dojo捕获动态创建的元素上的click事件。
这是我创建链接列表的方式:
for(var i=0; i<items.length; i++){
console.log( items[i].getAttribute("jid") )
dojo.place("<li><a href='#' id='temp'>" + items[i].getAttribute("firstname") + "</a></li>", "log");
}
on( '#temp' ).on( 'click', function( evt ) {
console.log( "click" );
});
不幸的是,活动没有注册。
答案 0 :(得分:1)
dojo/on
的{p> Here are the docs;您需要传递元素,事件类型和处理程序。看起来您需要dojo/query
,而您第一次尝试使用on
; docs are here
您似乎想为每个动态创建的元素设置一个点击处理程序。因此,对于这些元素query
并在每个元素上设置一个点击处理程序。
我将您的id
更改为class
,因为拥有多个具有相同ID的元素并不是一个好主意,但概念是相同的。而不是上面的on
链,这样的东西可以起作用:
query('.temp').forEach(function(t) {
on(t, 'click', function(evt) {
console.log('click', evt);
});
});
Here's a working fiddle包含一些虚拟物品;大概你的物品略有不同。