Показать сообщение отдельно
  #1 (permalink)  
Старый 11.12.2011, 13:38
Аспирант
Отправить личное сообщение для Arigato Посмотреть профиль Найти все сообщения от Arigato
 
Регистрация: 11.12.2011
Сообщений: 42

Событие на динамически созданные элементы списка
Простая задачка: заполнить список произвольными данными, удалять строки списка по двойному клику. Решение:
var body = document.getElementsByTagName ("body")[0];
  var select = document.createElement ("select"); 
  select.size = 16;
  body.appendChild (select);
  for ( var i = 0; i < 16; i++ )
  {
    option = new Option ("Option #" + i.toString(), i, false, false);
    select.options[select.options.length] = option;
    option.ondblclick = function() {select.remove (select.selectedIndex)};
  }

Список заполняется во всех браузерах, а вот удаление работает везде, кроме IE. В IE почему-то не срабатывает навешивание события option.ondblclick.
Если же событие навесить не на элементы списка, а на весь список:
select.ondblclick = function () {select.remove (select.selectedIndex)};
То работает везде, в том числе и в IE.

Поясните, с чем связана эта ситуация? Что элемент select, что элементы option, создаются динамически. На select событие работает, а на option - нет. Непонятно...
Ответить с цитированием