jQuery remove()回调?

时间:2011-09-29 08:56:34

标签: javascript callback jquery

是否有正式方法可以挂钩到jQuery.remove()以便可以在之前/之后调用函数?

我有一个系统,其中某些处理程序附加到元素,有时这些元素被删除(例如,一个UI小部件,其主要元素被页面上的某些其他操作删除)。如果可以通知处理程序他们的主要元素已被删除,我可以更轻松地运行清理例程。

3 个答案:

答案 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();
});