Показать сообщение отдельно
  #1 (permalink)  
Старый 02.07.2009, 12:25
Pula
 
Сообщений: n/a

Кроссбраузерное навешивание событий на динамический элемент
Здравствуйте, уважаемые!
Прочитал http://javascript.ru/tutorial/events/crossbrowser, но и с ним не получилось достичь чего хочу.
Задача: вывести alert при нажатии на динамически созданный объект или, точнее, его составляющу.
Проблема: работает только на IE (8)... В опере (9.6) и FireFox-е (2.0.0.6) не хочет. Причём ошибок не выдают, просто не прикручивают событие...
var dv = document.createElement('DIV');
// ...
document.body.appendChild(dv);
var dv_id = "nado" + i;

Event.add(document.getElementById(dv_id), 'click', function () {alert(i);});


Пробовал и другие "кроссбраузерные" функции для записи события, например такую
function addEvent(el, evnt, func){ 
   if (el.addEventListener) {                   
        el.addEventListener(evnt.substr(2).toLowerCase(), func, false);
   } else if (el.attachEvent) {
      el.attachEvent(evnt.toLowerCase(), func);
   } else {
      el[evnt] = func;
   }
}


Но эффект тот же, может у меня где ошибка? Или обработка событий для динамических объектов выглядит как-то особо?
Надеюсь на вашу помощь. Спасибо.
Ответить с цитированием