Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   Отказывается совершать append (https://javascript.ru/forum/css-html-internet-explorer/9698-otkazyvaetsya-sovershat-append.html)

Kein 01.06.2010 15:22

Отказывается совершать append
 
Есть у меня некий объект category которые имеет метод block()
var domBlock;
this.block = function(){
 if (!domBlock){
   // тут конструктор блока
 }
 return domBlock; // jquery объект
}

Далее я в цикле очищаю область. Пробегаюсь по списку
for(id in category_list){
   area.append( category_list[id].block() );
}


Вот тут то и косяк. Если только что были созданы 3 блока, то они выведутся, а те что хранились внутри объекта уже не выводятся. Если еще раз выполнить ajax запрос, то появятся новые, в то время как старые не появятся больше.
как это решить?

Kein 02.06.2010 13:37

Вопрос помогли решить на другом ресурсе, все дело было в том что перед append надо было использовать .clone(), судя по всему ИЕ удаляет дочерние объекты при очистке атрибута innerHTML.

e1f 02.06.2010 13:56

Цитата:

Сообщение от Kein (Сообщение 57554)
судя по всему ИЕ удаляет дочерние объекты при очистке атрибута innerHTML.

Покажите мне браузер, который этого не делает Оо

Kein 02.06.2010 14:36

Все выше перечисленные браузеры не удаляли ссылку на DOM объект в созданном объекте category. Может дело было в том что при возврате DOM объекта из функции они его копировали, не уверен, но как бы то ни было в других браузерах удаления их не происходило, и в последующем они добавлялись корректно.
Во всяком случае это был хороший урок для меня)


Часовой пояс GMT +3, время: 01:14.