Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   сбивается событие (https://javascript.ru/forum/events/28624-sbivaetsya-sobytie.html)

czp 27.05.2012 12:50

сбивается событие
 
верстка
<div id="wrapper">
  <div id="button"></div>
</div>

если на вложенный див поставить событие, и после динамически добавлять в родительський див данные(любые)
к примеру :
wrapper = document.getElementById('wrapper');
button = document.getElementById('button');
button.onclick = function() { wrapper.innerHTML += '<div>bla bla</div>'; };

то после первого добавления, все событие на дочерних элементах перестанут работать, как такое исправить? по новой раздавать событие не вариант

Kolyaj 27.05.2012 13:39

Менять innerHTML у внутреннего дива, а не у внешнего. Вы же содержимое новое вставляете, у которого нет никаких событий.

Deff 27.05.2012 13:51

czp,
В принципе, при добавках appendChild (ом), во внутрь внешнего, а не innerHTML - события вроде не теряюца, (*уточнил для мелких фишек, оставшихся внутри

czp 27.05.2012 15:05

так там вставляет текст appendChild не умеет вроде как текст вставлять, аяксом возвращает текст вот и приходится вставлять, и если вы заметили добавлять к существующему

Deff 27.05.2012 15:15

Цитата:

Сообщение от czp (Сообщение 176858)
так там вставляет текст appendChild не умеет вроде как текст вставлять, аяксом возвращает текст вот и приходится вставлять, и если вы заметили добавлять к существующему

Создайте предварительно скрытий div/span с id - в него запихиваете аякс - скрытый div/span вставляете и раскрываете

czp 27.05.2012 16:15

а есть еше альтернатива?

vadim5june 27.05.2012 16:48

Цитата:

Сообщение от czp (Сообщение 176879)
а есть еше альтернатива?

Трудно назвать альтернотивой почти тоже самое-но делаю так
var d=document.createElement('div');
d.innerHTML='bla-bla';
wrapper.appendChild(d)

czp 27.05.2012 16:55

а если там список?
<ul>
<li></li>
<li></li>
</ul>

добавляем еше
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>

как быть?

vadim5june 27.05.2012 17:09

без разницы все просто вставляется-главное знать куда вставлять -внутрь ul или после
то есть вам строка приходит вида?
'<ul><li>....</ul>'

Раед 27.05.2012 17:10

Цитата:

Сообщение от czp
а если там список?

var d=document.createElement('ul');
d.innerHTML='<li>bla-bla</li>';
while (d.children.length) wrapper.appendChild(d.children[0])


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