jQuery удалить () обратный вызов? - PullRequest
16 голосов
/ 29 сентября 2011

Есть ли официальный способ подключиться к jQuery.remove (), чтобы можно было вызывать функцию до / после?

У меня есть система, в которой определенные обработчики присоединяются к элементам, а иногда и к этим элементам.удаляются (например, виджет пользовательского интерфейса, основной элемент которого удаляется с помощью какого-либо другого действия на странице).Если бы обработчики могли получить уведомление о том, что их основной элемент был удален, я могу немного проще выполнить процедуры очистки.

Ответы [ 3 ]

23 голосов
/ 21 августа 2013

вы можете использовать jQuery.when () :

$.when($('div').remove()).then( console.log('div removed') );
5 голосов
/ 07 октября 2011

Используйте пользовательское событие, прикрепите обработчики к пользовательскому событию, которое запускается до / после удаления.Например,

$( document ).bind( 'remove', function( event, dom ){

    $( document ).trigger( 'beforeRemove', [ dom ] );
    $( dom ).remove();
    $( document ).trigger( 'afterRemove', [ dom ] );
});

$( document ).trigger( 'remove', 'p' ); //Remove all p's
3 голосов
/ 17 мая 2015

Вот изящный хак - вы можете попробовать.

$('div').hide(1, function(){
    // callback
    $(this).remove();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...