Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.06.2014, 14:55
Аспирант
Отправить личное сообщение для yriiarutiunian Посмотреть профиль Найти все сообщения от yriiarutiunian
 
Регистрация: 22.08.2013
Сообщений: 57

Проблема со срабатыванием события
Здравствуйте,
<!doctype html>
<html>
	<head>
		<meta charset="utf-8"/>
		<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
		<script type="text/javascript">
			window.onload = function()
			{
				$( '.test-div' ).on( 'click',
					function()
					{
						alert( 'ok' );
						var buf = $( 'div.test-div' );
						$( 'div.test-div' ).remove();
						buf.appendTo( $( document.body ) );
					}
				);
			}
		</script>
	</head>
	<body>
		<div class="test-div">Click Me</div>
	</body>
</html>


При клике на div удаляю его из дома и вставляю на тоже самое место, после этого событие повешанное перестает срабатывать. Подскажите пожалуйста почему так происходит и как это исправить
Ответить с цитированием
  #2 (permalink)  
Старый 05.06.2014, 15:21
Аватар для Tek
Tek Tek вне форума
Профессор
Отправить личное сообщение для Tek Посмотреть профиль Найти все сообщения от Tek
 
Регистрация: 22.02.2012
Сообщений: 212

Этот вопрос задают каждый день....
замени
$( '.test-div' ).on( 'click',
на
$( document ).on( 'click', '.test-div', //Вместо document можно (и нужно) поставить родительский элемент
Ответить с цитированием
  #3 (permalink)  
Старый 05.06.2014, 15:21
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от yriiarutiunian Посмотреть сообщение
При клике на div удаляю его из дома и вставляю на тоже самое место, после этого событие повешанное перестает срабатывать. Подскажите пожалуйста почему так происходит и как это исправить
Очевидно это происходит потому что элемента на котором отслеживается событие уже не существует. Так что либо перевешивать событие на новосозданный элемент, либо использовать делегирование:
$(document).on('click', '.test-div', function() {
 //код обработчика
});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрет события Click на дочернем элементе, кот. находится за рамками родителя Smokvin Events/DOM/Window 11 10.11.2013 01:53
Выполнение проверки после наступления события juggalo Events/DOM/Window 6 06.10.2012 01:37
Проблема с обработчиком события poorking Events/DOM/Window 4 01.11.2010 23:29
Проблема с функцией события Daniar Элементы интерфейса 2 19.08.2009 04:18
Проблема с обработкой события MazenRat Events/DOM/Window 4 17.07.2009 11:25