2009-02-04 9 views
39

Voglio eliminare un elemento DOM subito dopo la dissolvenza. Quello che ho fatto finora èJQuery cancella l'elemento DOM dopo lo sbiadimento

$(element).click(function() 
{ 
    $(this).fadeOut(500, function() { $().remove(this); }); 
}); 

Ma ora ho sempre ottenere questo errore in Firebug: http://dl.getdropbox.com/u/5912/Jing/2009-02-04_1109.png

Credo che sia perché la funzione fadeOut non è realmente fatto quando il callback viene chiamato. E non posso mettere la parte $.remove() dopo la chiamata fadeOut perché altrimenti viene rimossa istantaneamente.

Quindi, sai come posso fare meglio?

risposta

108

Si sta utilizzando la funzione remove() in modo errato.

$(element).click(function() { 
    $(this).fadeOut(500, function() { $(this).remove(); }); 
}); 
+1

bella soluzione !! il mio voto è + – imdadhusen

2

Perchè fare scherzi qui usa solo $ ('# anydiv'). Remove();

+2

Immagino che voglia prima svanire e rimuovere l'elemento dopo che lo sbiadimento è finito. – user3142695