Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.07.2015, 13:56
Интересующийся
Отправить личное сообщение для S.E.K.T.O.R. Посмотреть профиль Найти все сообщения от S.E.K.T.O.R.
 
Регистрация: 09.07.2015
Сообщений: 15

Слетает обработчик после AJAX
Доброго времени суток!
В теле HTML страницы есть такая конструкция
<div id="ajax_response">
	...
	<span id="myid">bla-bla</span>
	...
</div>

В скрипте на тег <span> повешен обработчик
(function() {	
	document.getElementById("myid").style.display = "none";
})();


После того, как AJAX обновит весь <div>, обработчик со <span> слетает. Подскажите пожалуйста, как правильно в этой ситуации повесить обработчик?

Спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 24.07.2015, 14:19
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

S.E.K.T.O.R.,
Ну дык при удалении элемента нет события привязанного к нему и свойств стиля привязанных к данному элементу DOM.
Новозагруженные элементы(с теми же селекторами) не имеют отношения к объекту старых установок
Проще менять добавлять класс элементу с селектором и прописать скрытие в стиле
==============
Для переемственности текущего состояния нун перед загрузкой считывать в массив старые установки и возвращать на подгруженные идентичные элементы, или грузить избирательно лишь обновляемое содержимое
==============
Мон вешать событийную обработку на элемент через атрибуты (onclick и т.д.)

Последний раз редактировалось Deff, 24.07.2015 в 14:28.
Ответить с цитированием
  #3 (permalink)  
Старый 24.07.2015, 15:14
Интересующийся
Отправить личное сообщение для S.E.K.T.O.R. Посмотреть профиль Найти все сообщения от S.E.K.T.O.R.
 
Регистрация: 09.07.2015
Сообщений: 15

Сообщение от Deff
Проще менять добавлять класс элементу с селектором и прописать скрытие в стиле
Я понимаю, что проще, но скрывать нужно именно через JS. В скрипт, который обновляет весь <div>, я вмешиватся так же не могу.

Сообщение от Deff
Мон вешать событийную обработку на элемент через атрибуты (onclick и т.д.)
Это да, но ведь нет события, что бы прописать спану "display: none" по умолчанию?
Ответить с цитированием
  #4 (permalink)  
Старый 24.07.2015, 16:28
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

S.E.K.T.O.R.,
используйте делегирование
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #5 (permalink)  
Старый 24.07.2015, 16:36
Интересующийся
Отправить личное сообщение для S.E.K.T.O.R. Посмотреть профиль Найти все сообщения от S.E.K.T.O.R.
 
Регистрация: 09.07.2015
Сообщений: 15

Сообщение от devote
используйте делегирование
Я тоже об этом думал, но получилось корректно написать. Можно простенький пример?
Ответить с цитированием
  #6 (permalink)  
Старый 24.07.2015, 16:48
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

S.E.K.T.O.R.,
document.body.onclick = function(e) {
  if (e.target.id === "myid") {
    e.target.style.display = "none";
  }
};
Смотря что тебе надо, ты ведь не удосужился нормальный код привести в пример. Привел какие-то огрызки, в которых ничего не понять.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #7 (permalink)  
Старый 24.07.2015, 23:37
Интересующийся
Отправить личное сообщение для S.E.K.T.O.R. Посмотреть профиль Найти все сообщения от S.E.K.T.O.R.
 
Регистрация: 09.07.2015
Сообщений: 15

Сообщение от devote
Смотря что тебе надо, ты ведь не удосужился нормальный код привести в пример. Привел какие-то огрызки, в которых ничего не понять.
Да вроде как описал все что нужно. В кратце:
Есть на странице <span>. Нужно через JS сделать ему style.display = "none" при загрузке страницы и что бы этот style не слетал после AJAX, так как сам нужный <span> находится внутри контейнера, который обновляется AJAX'ом.
В вашем примере, стиль присваиватся при клике на <span>, мне же нужно то же самое, но при загрузке страницы.
Ответить с цитированием
  #8 (permalink)  
Старый 24.07.2015, 23:41
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

S.E.K.T.O.R.,
Поставить скрипт сразу после контейнера на странице, Вызвать програмный клик.
А почему просто не поставить строку document.getElementById("myid").style.display = "none"; ?
Ответить с цитированием
  #9 (permalink)  
Старый 24.07.2015, 23:43
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от S.E.K.T.O.R. Посмотреть сообщение
Да вроде как описал все что нужно. В кратце:
Есть на странице <span>. Нужно через JS сделать ему style.display = "none" при загрузке страницы и что бы этот style не слетал после AJAX, так как сам нужный <span> находится внутри контейнера, который обновляется AJAX'ом.
В вашем примере, стиль присваиватся при клике на <span>, мне же нужно то же самое, но при загрузке страницы.
====================
Опять жа без выложенного минимального кода - это обсуждения в "курилке"
Ответить с цитированием
  #10 (permalink)  
Старый 25.07.2015, 00:01
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

S.E.K.T.O.R.,
еще раз говорю, мы не ясновидящие... приведи часть кода который у тебя не работает, а гадать что и как у тебя там сделано никто не будет.
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод картинки после загрузки ajax zkolya jQuery 0 02.05.2015 01:41
Обработчик срабатывает сразу же после установки vuler Общие вопросы Javascript 5 24.03.2015 15:17
Вызов методов объекта подгружаемого по ajax prophet AJAX и COMET 0 23.02.2012 11:52
Не работает JS после подгрузки div через ajax BoB AJAX и COMET 3 09.12.2011 03:03
Какой есть обработчик событий, который будет запускаться после выполнения всего кода? KamalovRadik jQuery 12 08.11.2011 07:14