-1

I use jQuery ajax. According to the answer I remove or add. But jQuery.on function not working.

Example:

<div id="selector">
    <span>Hello World</span>
</div>

$(document).ready(function(){
    $(document).on('remove','span',function(){
        alert(" first object object deleted");
    });

    setTimeout(function(){
        $('#selector').empty();
    },3000);
});

jsFiddle.net https://jsfiddle.net/1zuau1f6/5/

edit: my question is not understood. Question I am correcting..

---Update---

i find solution in jquery.ui framework

$.cleanData = ( function( orig ) {
    return function( elems ) {
        var events, elem, i;
        for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {
            try {

                // Only trigger remove when necessary to save time
                events = $._data( elem, "events" );
                if ( events && events.remove ) {
                    $( elem ).triggerHandler( "remove" );
                }

                // Http://bugs.jquery.com/ticket/8235
            } catch ( e ) {}
        }
        orig( elems );
    };
} )( $.cleanData );
Haydar C.
  • 742
  • 12
  • 24

4 Answers4

1

give a try like this..

setTimeout(function(){
    $('#selector').trigger('remove').remove();       
},3000);

fiddle Demo

Raja
  • 600
  • 6
  • 15
0

Two issues:

1) You have to include jquery UI library to use remove event.

2) event delegation does not work with remove. thus use:

$('div').on('remove',function(){
    alert(" first object object deleted");
});

Working Demo

Milind Anantwar
  • 81,290
  • 25
  • 94
  • 125
0
$(document).ready(function(){

  $(document).on('remove','div',function(){
    alert("Element was removed");
   });     
  setTimeout(function(){
    $('#selector').trigger('remove');
   },3000);
}); 

Demo

Hope this helps

tech-gayan
  • 1,373
  • 1
  • 10
  • 25
0

Also you can override jQuery.remove() function:

$(function(){
    var origRemove = $.fn.remove;

    $.fn.remove = function newRemove() {
        var jQ = this.trigger("remove");
        return origRemove.apply(jQ, arguments);
    };    

    $(document).on('remove','div',function(){
        alert("object gonna be deleted");
    });

    setTimeout(function(){
        $('#selector').remove();        
    },3000);
})