Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Навесить событие на <SELECT>, который генериться динамически 
V
    Опции темы
skyboy
Дата 28.6.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



Создаю SELECT run-time, но, судя по его поведению, функция то ли не закрепляется за событием смены, то ли не вызывается...
Код

  function test()
  {
   var sel= document.createElement("select");
   var attrib= document.createAttribute("onchange");
   attrib.value= '"alert(4);"';
   sel.setAttributeNode(attrib);
   var opt= document.createElement("option");
   opt.text= "aaa";
   var opt1= document.createElement("option");
   opt1.text= "bbb";
   sel.add(opt);
   sel.add(opt1);
   document.forms["myform"].appendChild(sel);
  }

Или я неправильно создаю SELECT? 
PM MAIL   Вверх
vasac
Дата 28.6.2006, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Обработчик неправильно навешиваешь.
Либо:
Код

sel.onchange = function( e ) { alert( 4 ); }

Либо:
Код

if ( sel.addEventListener ) {
  sel.addEventListener( "change", function( e ) { alert( 4 ); }, false );
} else sel.attachEvent( "onchange", function( e ) { alert( 4 ); } );
 

ЗЫ. Писать надо 
Код

sel.add( opt, null );

а то в Gecko работать не будет. 

Это сообщение отредактировал(а) vasac - 28.6.2006, 14:32
PM WWW   Вверх
skyboy
Дата 28.6.2006, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



vasac, спасибо. Я думал, что можно подключать события, как аттрибуты...
А 
Код

sel.add( opt, null );

в IE выдает ошибку "несовпадение типов" smile 
PM MAIL   Вверх
vasac
Дата 28.6.2006, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Цитата
в IE выдает ошибку "несовпадение типов" 


Точно. 
Тогда либо ветки нужно на ие и фф делать или через appendChild... 
PM WWW   Вверх
skyboy
Дата 28.6.2006, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



vasac, после appendChild в списке явно два пункта, но нет текста в них. Пробовал делать также appendChild объекта типа HTMLElement(вместо HTMLOptionElement), но ситуация не изменилась - добавляет два пункта, но оба -  без текста. 
PM MAIL   Вверх
vasac
Дата 28.6.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1060
Регистрация: 4.5.2006

Репутация: 13
Всего: 36



Вместо 
opt.text= "aaa";
Для пущей совместимости лучше:
opt.appendChild( document.createTextNode( "aaa" ) );

Вариант с opt.text у меня работает в FF, но не работает в IE. Последний работает в обоих.
 
PM WWW   Вверх
skyboy
Дата 28.6.2006, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



vasac, спасибо. Почему-то в программе, где это отлаживал, несмотря на явное использование компонента TwebBrowser и IE-потомственность не работало appendChild - потому-то я и извращался со свойством text... Буду теперь убивать "alt" и "tab"  smile  
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.