Слетает обработчик после AJAX
Доброго времени суток!
В теле HTML страницы есть такая конструкция <div id="ajax_response"> ... <span id="myid">bla-bla</span> ... </div> В скрипте на тег <span> повешен обработчик (function() { document.getElementById("myid").style.display = "none"; })(); После того, как AJAX обновит весь <div>, обработчик со <span> слетает. Подскажите пожалуйста, как правильно в этой ситуации повесить обработчик? Спасибо |
S.E.K.T.O.R.,
Ну дык при удалении элемента нет события привязанного к нему и свойств стиля привязанных к данному элементу DOM. Новозагруженные элементы(с теми же селекторами) не имеют отношения к объекту старых установок Проще менять добавлять класс элементу с селектором и прописать скрытие в стиле ============== Для переемственности текущего состояния нун перед загрузкой считывать в массив старые установки и возвращать на подгруженные идентичные элементы, или грузить избирательно лишь обновляемое содержимое ============== Мон вешать событийную обработку на элемент через атрибуты (onclick и т.д.) |
Цитата:
Цитата:
|
S.E.K.T.O.R.,
используйте делегирование |
Цитата:
|
S.E.K.T.O.R.,
document.body.onclick = function(e) { if (e.target.id === "myid") { e.target.style.display = "none"; } };Смотря что тебе надо, ты ведь не удосужился нормальный код привести в пример. Привел какие-то огрызки, в которых ничего не понять. |
Цитата:
Есть на странице <span>. Нужно через JS сделать ему style.display = "none" при загрузке страницы и что бы этот style не слетал после AJAX, так как сам нужный <span> находится внутри контейнера, который обновляется AJAX'ом. В вашем примере, стиль присваиватся при клике на <span>, мне же нужно то же самое, но при загрузке страницы. |
S.E.K.T.O.R.,
:) Поставить скрипт сразу после контейнера на странице, Вызвать програмный клик. А почему просто не поставить строку document.getElementById("myid").style.display = "none"; ? |
Цитата:
Опять жа без выложенного минимального кода - это обсуждения в "курилке" |
S.E.K.T.O.R.,
еще раз говорю, мы не ясновидящие... приведи часть кода который у тебя не работает, а гадать что и как у тебя там сделано никто не будет. |
Часовой пояс GMT +3, время: 22:01. |