Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.10.2010, 17:48
Аватар для балерун
Аспирант
Отправить личное сообщение для балерун Посмотреть профиль Найти все сообщения от балерун
 
Регистрация: 16.11.2009
Сообщений: 79

Можно ли вызывать действие при уничтожении узла?
Привет, можно привязывать события на разные действия: click, blur, change и т.д., а можно привязать функцию, которая будет вызываться при уничтожении узла?
Ответить с цитированием
  #2 (permalink)  
Старый 13.10.2010, 18:04
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

(function ($) {
	var _ = $.fn.remove;
	$.fn.remove = function ( expr ) {
		this.trigger( "remove" );
		return _.call( this, expr );
	});
})(jQuery);


$(element).bind( "remove", handler );
Ответить с цитированием
  #3 (permalink)  
Старый 13.10.2010, 18:45
Аватар для балерун
Аспирант
Отправить личное сообщение для балерун Посмотреть профиль Найти все сообщения от балерун
 
Регистрация: 16.11.2009
Сообщений: 79

(function($) {
    var _ = $.fn.remove;
    $.fn.remove = function ( expr ) {
        alert();
        this.trigger( "remove" );
        return _.call( this, expr );
    };
})(jQuery);

$(document).ready(function() {
    $('#deleteMe').bind('remove', function(){alert('AAA')})
    $('#deletor').click(function(){$('#container').empty()});
});


И html:
<div id="container">
    <p id="deleteMe">text</p>
</div>
<button id="deletor">Удалить</button>


JQuery подключен. Что я не так делаю?

Последний раз редактировалось балерун, 13.10.2010 в 18:53.
Ответить с цитированием
  #4 (permalink)  
Старый 13.10.2010, 19:03
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

remove() надо вызывать, а не empty().
Ответить с цитированием
  #5 (permalink)  
Старый 14.10.2010, 10:11
Аватар для балерун
Аспирант
Отправить личное сообщение для балерун Посмотреть профиль Найти все сообщения от балерун
 
Регистрация: 16.11.2009
Сообщений: 79

(function($) {
    var _ = $.fn.remove;
    $.fn.remove = function ( expr ) {
        this.trigger( 'remove' );
        alert('alert #1');
        return _.call( this, expr );
        alert('alert #3');
    };
})(jQuery);
 
$(document).ready(function() {
    $('#deleteMe').bind('remove', function(){alert('alert #2')})
    $('#deletor').click(function(){$('#container').remove()});
});


Вызывается только первый алерт, и нет никаких ошибок.

p.s. вау, этим постом меня повысили до аспиранта)

Последний раз редактировалось балерун, 14.10.2010 в 10:44. Причина: теперь аспирант
Ответить с цитированием
  #6 (permalink)  
Старый 14.10.2010, 13:24
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

В своём коде я случайно поставил лишнюю скобку, из-за этого и не работало. Сейчас всё ОК:

<html>
	<head>
		<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js">
		</script>
	</head>
	<body>
		<div id='foo'>
			Lorem ipsum
		</div>
		<a href='javascript://' onclick='$("#foo").remove();'>
			Удалить!
		</a>
		<script type="text/javascript">
			(function ($) {
				var _ = $.fn.remove;
				$.fn.remove = function ( expr ) {
					this.trigger( "remove" );
					return _.call( this, expr );
				};
			})(jQuery);
			$( "#foo" ).bind("remove", function () {
				alert( "Remove!" );
			});
		</script>
	</body>
</html>
Ответить с цитированием
  #7 (permalink)  
Старый 14.10.2010, 14:29
Аватар для балерун
Аспирант
Отправить личное сообщение для балерун Посмотреть профиль Найти все сообщения от балерун
 
Регистрация: 16.11.2009
Сообщений: 79

Ты просто Бог! Спасибо огромное, от меня жирный плюс)
Дело было не в скобке. Я заметил ее, еще и подумал, что это защита от дурака, т.е. тупого копирования.
Вся суть была в расположении скрипта, он у меня срабатывал, когда еще документ не был полностью загружен.. да, вот так опростоволосился)

Последний раз редактировалось балерун, 14.10.2010 в 14:34. Причина: уточнил
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как при чтении или записи свойства объекта вызывать функцию danik.js Общие вопросы Javascript 3 16.09.2010 17:57
Можно ли отключить остановку javascript при ошибке в IE6 ? limonad Internet Explorer 0 28.01.2010 18:04
Двойное действие при клике по ссылке spider Элементы интерфейса 5 10.11.2009 10:43