Dojo:如何获取动态创建元素的attr

时间:2013-11-11 22:13:52

标签: dojo onclick click

似乎我无法使用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" );
});

不幸的是,活动没有注册。

1 个答案:

答案 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包含一些虚拟物品;大概你的物品略有不同。