関数を前後に呼び出すことができるようにjQuery.remove()にフックする公式の方法はありますか?
特定のハンドラーが要素にアタッチされ、これらの要素が削除されることがあるシステムがあります(たとえば、ページ上の他のアクションによってプライマリ要素が削除されるUIウィジェット)。主要な要素が削除されたことをハンドラーに通知できれば、クリーンアップルーチンを少し簡単に実行できます。
jQuery.when() を使用できます:
$.when($('div').remove()).then( console.log('div removed') );
カスタムイベントを使用し、削除の前後に発生するカスタムイベントにハンドラーをアタッチします。例えば、
$( document ).bind( 'remove', function( event, dom ){
$( document ).trigger( 'beforeRemove', [ dom ] );
$( dom ).remove();
$( document ).trigger( 'afterRemove', [ dom ] );
});
$( document ).trigger( 'remove', 'p' ); //Remove all p's
ここに気の利いたハックがあります-あなたはそれを試してみたいかもしれません。
$('div').hide(1, function(){
// callback
$(this).remove();
});