select динамически onchange не работает в ie
Привет!
по клику(кнопка, ссылка) выполняется функция, которая динамически добавляет в DOM элемент select с атрибутом onchange="SelectedAny('атрибут')" ну и соот-но option список атрибут - это цифра(0,1 ...) Следствие: onchahge="SelectedAny('атрибут')" не срабатывает в IE, действие не происходит никакого(ошибок не выдает, проверено в дебаггерах) Вопрос: onchange в ie не работает с динамически созданными элементами? ie6,7,8 собственно по onchange не происходит вызов функции SelectedAny(), куда копать? ps:FF и Opera все ок |
Код с созданием селекта.
|
function ListMenu(arr_en){
for(var i=0;i<arr_en.length;i++){ newItem = document.createElement("SPAN"); newItem.innerHTML = a_list[arr_en[i]]+': '; document.getElementById('listmenu').appendChild(ne wItem); newItem = document.createElement("SELECT"); newItem.innerHTML = ''; document.getElementById('listmenu').appendChild(ne wItem); attr = document.createAttribute('id'); attr.nodeValue = 'lm'+i; newItem.setAttributeNode(attr); attr = document.createAttribute('name'); attr.nodeValue = arr_en[i]; newItem.setAttributeNode(attr); var next; (arr_en[i+1])?next=arr_en[i+1]:next='0'; attr = document.createAttribute('onchange'); attr.nodeValue = 'ListMenuSelected("'+i+'")'; newItem.setAttributeNode(attr); } ListOptions('listmenu',arr_en[0],'lm0'); } не думаю что в этом проблема и это хоть что-нибудь даст |
дело не в функция, а в том что ошибки ie не выдает и события на динамически созданный объект не реагируют
|
еще одно: option формируется из ответа на ajax запрос, второй!
|
Какая-то у вас извращенная работа с DOM, живите проще:
newItem = document.createElement('select'); newItem.id = 'lm' + i; newItem.name = arr_en[i]; newItem.onchange = function() { ListMenuSelected(i); }; Возможно из-за эти всяких setAttributeNode и не работает Ну и вывернули же вы тернарный оператор var next; (arr_en[i+1])?next=arr_en[i+1]:next='0'; Лучше будет написать так var next = arr_en[i + 1] ? arr_en[i + 1] : 0; или даже так var next = arr_en[i + 1] || 0; |
спасибо за:
newItem.onchange = function() { ListMenuSelected(i); }; попробую, похоже нужно менять стиль, надеюсь это поможет |
Цитата:
|
Спасибо за ссылку, как я понял ie пишет в атрибут текст и чтобы все заработало в нем надо написать подобие этого:
inputTag.setAttribute("onclick", function() {alert('clicked')}); |
Не надо никакого setAttribute.
|
Часовой пояс GMT +3, время: 01:13. |