| 
	| 
	
	| 
		
	| 
			
			 
			
				24.07.2015, 13:56
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 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> слетает. Подскажите пожалуйста, как правильно в этой ситуации повесить обработчик?
 
Спасибо |  |  
	| 
		
	| 
			
			 
			
				24.07.2015, 14:19
			
			
			
		 |  
	| 
		
			
			| без статуса       |  | 
					Регистрация: 25.05.2012 
						Сообщений: 8,219
					 
		
 |  |  
	| S.E.K.T.O.R.,Ну дык при удалении элемента нет события привязанного к нему и свойств стиля привязанных к данному элементу DOM.
 Новозагруженные элементы(с теми же селекторами) не имеют отношения к объекту старых установок
 Проще менять добавлять класс элементу с селектором  и прописать скрытие в стиле
 ==============
 Для переемственности текущего состояния нун перед загрузкой считывать в массив старые установки и возвращать на подгруженные идентичные элементы, или грузить избирательно лишь обновляемое содержимое
 ==============
 Мон вешать событийную обработку на элемент через атрибуты (onclick и т.д.)
 			 Последний раз редактировалось Deff, 24.07.2015 в 14:28.
 |  |  
	| 
		
	| 
			
			 
			
				24.07.2015, 15:14
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 09.07.2015 
						Сообщений: 15
					 
		
 |  |  
	| 
	
 
	| Сообщение от Deff |  
	| Проще менять добавлять класс элементу с селектором  и прописать скрытие в стиле |  
	
 Я понимаю, что проще, но скрывать нужно именно через JS. В скрипт, который обновляет весь <div>, я вмешиватся так же не могу.
 
	
 
	| Сообщение от Deff |  
	| Мон вешать событийную обработку на элемент через атрибуты (onclick и т.д.) |  
	
 Это да, но ведь нет события, что бы прописать спану "display: none" по умолчанию? |  |  
	| 
		
	| 
			
			 
			
				24.07.2015, 16:28
			
			
			
		 |  
	| 
		
			
			| что-то знаю       |  | 
					Регистрация: 24.05.2009 
						Сообщений: 5,176
					 
		
 |  |  
	| S.E.K.T.O.R.,используйте делегирование
 |  |  
	| 
		
	| 
			
			 
			
				24.07.2015, 16:36
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 09.07.2015 
						Сообщений: 15
					 
		
 |  |  
	| 
	
 
	| Сообщение от devote |  
	| используйте делегирование |  
	
 Я тоже об этом думал, но получилось корректно написать. Можно простенький пример? |  |  
	| 
		
	| 
			
			 
			
				24.07.2015, 16:48
			
			
			
		 |  
	| 
		
			
			| что-то знаю       |  | 
					Регистрация: 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";
  }
};
 Смотря что тебе надо, ты ведь не удосужился нормальный код привести в пример. Привел какие-то огрызки, в которых ничего не понять. |  |  
	| 
		
	| 
			
			 
			
				24.07.2015, 23:37
			
			
			
		 |  
	| 
		
			
			| Интересующийся       |  | 
					Регистрация: 09.07.2015 
						Сообщений: 15
					 
		
 |  |  
	| 
	
 
	| Сообщение от devote |  
	| Смотря что тебе надо, ты ведь не удосужился нормальный код привести в пример. Привел какие-то огрызки, в которых ничего не понять. |  
	
 Да вроде как описал все что нужно. В кратце: 
Есть на странице <span>. Нужно через JS сделать ему style.display = "none" при загрузке страницы и что бы этот style не слетал после AJAX, так как сам нужный <span> находится внутри контейнера, который обновляется AJAX'ом. 
В вашем примере, стиль присваиватся при клике на <span>, мне же нужно то же самое, но при загрузке страницы. |  |  
	| 
		
	| 
			
			 
			
				24.07.2015, 23:41
			
			
			
		 |  
	| 
		
			
			| без статуса       |  | 
					Регистрация: 25.05.2012 
						Сообщений: 8,219
					 
		
 |  |  
	| S.E.K.T.O.R.,
     Поставить скрипт сразу после контейнера на странице, Вызвать програмный клик.  
А почему просто не поставить строку document.getElementById("myid").style.display = "none"; ? |  |  
	| 
		
	| 
			
			 
			
				24.07.2015, 23:43
			
			
			
		 |  
	| 
		
			
			| без статуса       |  | 
					Регистрация: 25.05.2012 
						Сообщений: 8,219
					 
		
 |  |  
	| 
	
 
	| Сообщение от S.E.K.T.O.R.   |  
	| Да вроде как описал все что нужно. В кратце: Есть на странице <span>. Нужно через JS сделать ему style.display = "none" при загрузке страницы и что бы этот style не слетал после AJAX, так как сам нужный <span> находится внутри контейнера, который обновляется AJAX'ом.
 В вашем примере, стиль присваиватся при клике на <span>, мне же нужно то же самое, но при загрузке страницы.
 |  
	
 ==================== 
Опять жа без выложенного минимального кода - это обсуждения в "курилке" |  |  
	| 
		
	| 
			
			 
			
				25.07.2015, 00:01
			
			
			
		 |  
	| 
		
			
			| что-то знаю       |  | 
					Регистрация: 24.05.2009 
						Сообщений: 5,176
					 
		
 |  |  
	| S.E.K.T.O.R.,еще раз говорю, мы не ясновидящие... приведи часть кода который у тебя не работает, а гадать что и как у тебя там сделано никто не будет.
 |  |  |  |