Показать сообщение отдельно
  #3 (permalink)  
Старый 06.10.2013, 14:35
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от fe1ix
$("#posts").append("some_html" + data);
Вы наверно не понимаете что делает это код. Он очищает innerHTML элемента, что влечет за собой удаление всех элементов, естественно со всеми привязанными обработчиками, далее идет присвоение старого значение innerHTML + новая строка, что влечет за собой пересоздание всех элементов заново, уже конечно без каких либо обработчиков.
Решение:
1) Не использовать innerHTML, добавляя новые элементы через Element.prototype.appendChild , предварительно навешав нужные обработчики.
2) Навешивать обработчики не на посты, а на контейнер, и уже в обработчиках отслеживать целевой элемент события и в зависимости от него уже исполнять тот или иной код. Это называется делегирование событий (его поддержка уже встроена в jQuery)
__________________
В личку только с интересными предложениями
Ответить с цитированием