«addEventListener» - лучший подход (на случай, если вы захотите позже отменить привязку / связать больше событий). Кроме того, я бы рекомендовал кэшировать ссылку на родительский элемент, например,
var docFrag = document.createDocumentFragment(),
elem;
for(var i = 1; i <= 64; i++){
elem = document.createElement('div');
elem.id = "element"+i;
elem.addEventListener('click', doSomething);
docFrag.appendChild(elem);
}
$("parentElement").appendChild(docFrag);
В зависимости от размера списка, вы можете рассмотреть делегирование события:
var docFrag = document.createDocumentFragment(),
elem,
parent = $("parentElement");
for(var i = 1; i <= 64; i++){
elem = document.createElement('div');
elem.id = "element"+i;
elem.className = "clickMe";
docFrag.appendChild(elem);
}
parent.appendChild(docFrag);
parent.addEventListener('click', function( event ) {
if( event.target.class === 'clickMe' ) {
doSomething(event);
}
});
(имя класса "clickMe" полностью произвольно)
Редактировать: оба эти примера попали в ловушку ОП, добавляя их в DOM в цикле. Этого следует избегать всякий раз, когда это возможно, поскольку касание DOM стоит дорого. Примеры были обновлены, чтобы вместо этого создать фрагмент документа, который заполняется и затем добавляется к родительскому элементу. Это делает кеширование ссылки на родителя ненужным в первом примере.