Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.09.2012, 02:15
Аспирант
Отправить личное сообщение для vladimircape Посмотреть профиль Найти все сообщения от vladimircape
 
Регистрация: 25.01.2012
Сообщений: 95

Добавление обработчика событий при добавлении элементов
У меня ajax ом добавляются элементы и на них я добавляю обработчики событий необходимые.Но появилось проблема в одном обработчике
После появления элементов добавленных ajax добавляются события к ним,но к старым аналогичным элементам это событие перестает работать, или как-то не корректно, то в некоторых местах работает, то нет, хотя копировал копипастом.
Ответить с цитированием
  #2 (permalink)  
Старый 12.09.2012, 08:20
жажду знаний
Отправить личное сообщение для bushstas Посмотреть профиль Найти все сообщения от bushstas
 
Регистрация: 17.07.2009
Сообщений: 202

Размести пожалуйста JS код. Так никто тебе ничем не поможет, нужно видеть как ты там добавляешь обработчики и как добавляются у тебя новые элементы.

можно ведь еще в самом HTML коде в файле PHP обработчике AJAX запроса вписывать у нужных элементов типа onclick="" и т.п.
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2012, 13:02
Аспирант
Отправить личное сообщение для vladimircape Посмотреть профиль Найти все сообщения от vladimircape
 
Регистрация: 25.01.2012
Сообщений: 95

вот сам обработчик
$(".person .person-control p,.person .person-control p.meny").click(function(){		
		if($(this).attr("rel") != 'profil' && $(this).attr("rel") != 'close') {
			var $homeDiv = $(this).parent().parent().parent();		
			$homeDiv.addClass("active");
			if(!$homeDiv.is(".foto")) {
				if(!$(this).is(".active")) {
					$(".hidden-box").hide();
					$(".person").removeClass("active");
					$homeDiv.addClass("active");
					$(".person .person-control a").removeClass("active");
					$("div.v"+$(this).attr("rel"), $homeDiv).slideDown(100);			
					$(this).addClass("active");
				} else {						
					$("div.v"+$(this).attr("rel"), $homeDiv).hide();
					$(this).removeClass("active");
				}
			} else {
				if(!$(this).is(".active")) {
					$(".hidden-box").hide();
					$(".person").removeClass("active");
					$homeDiv.addClass("active");
					$(".person .person-control a").removeClass("active");
					$("div.v"+$(this).attr("rel"), $homeDiv).slideDown(100);			
					$(this).addClass("active");
				} else {	
					$homeDiv.removeClass("active");
					$("div.v"+$(this).attr("rel"), $homeDiv).hide();
					$(this).removeClass("active");
				}
			}
		}
		return true;//было false и поэтому по ссылкам не ходило
});

аналогичный код ,копипастом я вставил в ajax
в success.
Другие обработчики тоже вставленные нормально работают,а этот нет
Ответить с цитированием
  #4 (permalink)  
Старый 13.09.2012, 09:57
Аспирант
Отправить личное сообщение для vladimircape Посмотреть профиль Найти все сообщения от vladimircape
 
Регистрация: 25.01.2012
Сообщений: 95

Странно что не работает, но пока решил через live(т.е. click заменил на live)и всё работает
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при инициализации событий sms9 Events/DOM/Window 2 21.01.2010 22:14
Ошибка при добавлении обработчика к событию Riim Events/DOM/Window 32 19.01.2010 14:17
Кто чем пользуется при создании html элементов vflash Общие вопросы Javascript 14 24.08.2009 21:12
Ошибки обработчика событий onError при загрузке изображений. avtorpc Общие вопросы Javascript 6 24.01.2009 01:33
как при добавлении изображения на сервер считывать имя в БД? solomusic Серверные языки и технологии 3 12.06.2008 23:28