Можно ли вызывать действие при уничтожении узла?
Привет, можно привязывать события на разные действия: click, blur, change и т.д., а можно привязать функцию, которая будет вызываться при уничтожении узла?
|
(function ($) {
var _ = $.fn.remove;
$.fn.remove = function ( expr ) {
this.trigger( "remove" );
return _.call( this, expr );
});
})(jQuery);
$(element).bind( "remove", handler ); |
(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 подключен. Что я не так делаю? |
remove() надо вызывать, а не empty().
|
(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. вау, этим постом меня повысили до аспиранта) |
В своём коде я случайно поставил лишнюю скобку, из-за этого и не работало. Сейчас всё ОК:
<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>
|
Ты просто Бог! Спасибо огромное, от меня жирный плюс)
Дело было не в скобке. Я заметил ее, еще и подумал, что это защита от дурака, т.е. тупого копирования. Вся суть была в расположении скрипта, он у меня срабатывал, когда еще документ не был полностью загружен.. да, вот так опростоволосился) |
| Часовой пояс GMT +3, время: 01:14. |