2013-11-11 5 views
0

Похоже, я не могу поймать событие click на динамически созданных элементах с dojo.Dojo: как получить attr динамически созданного элемента

Это, как я создать список ссылок:

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

Here are the docs для dojo/on; вам необходимо передать элемент, тип события и обработчик. Похоже, вам понадобится dojo/query, где вы пытаетесь использовать on в первый раз; docs are here.

Похоже, вы хотите настроить обработчик кликов для каждого из ваших динамически созданных элементов. Итак, query для этих элементов и настройте обработчик кликов на каждом из них.

Я изменил ваш id на class, потому что это не очень хорошая идея иметь несколько элементов с одним и тем же идентификатором, но концепция такая же. Вместо того чтобы использовать on цепи выше, чем-то, как это будет работать:

query('.temp').forEach(function(t) { 
    on(t, 'click', function(evt) { 
     console.log('click', evt); 
    }); 
}); 

Here's a working fiddle с некоторыми фиктивных элементов; предположительно, ваши вещи немного отличаются.

Смежные вопросы