是否有正式方法可以挂钩到jQuery.remove()以便可以在之前/之后调用函数?
我有一个系统,其中某些处理程序附加到元素,有时这些元素被删除(例如,一个UI小部件,其主要元素被页面上的某些其他操作删除)。如果可以通知处理程序他们的主要元素已被删除,我可以更轻松地运行清理例程。
答案 0 :(得分:23)
您可以使用jQuery.when():
$.when($('div').remove()).then( console.log('div removed') );
答案 1 :(得分:5)
使用自定义事件,将处理程序附加到在删除之前/之后触发的自定义事件。例如,
$( document ).bind( 'remove', function( event, dom ){
$( document ).trigger( 'beforeRemove', [ dom ] );
$( dom ).remove();
$( document ).trigger( 'afterRemove', [ dom ] );
});
$( document ).trigger( 'remove', 'p' ); //Remove all p's
答案 2 :(得分:3)
这是一个漂亮的黑客 - 你可能想尝试一下。
$('div').hide(1, function(){
// callback
$(this).remove();
});