JQuery remove() callback?

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

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

Ответы

Ответ 1

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

$.when($('div').remove()).then( console.log('div removed') );

Ответ 2

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

$( 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

Здесь отличный хак - вы можете попробовать попробовать.

$('div').hide(1, function(){
    // callback
    $(this).remove();
});