Come "fadeOut" e "rimuovi" un div in jQuery?

Sto provando a dare effetto fadeout a un div e eliminare quel div (id = "notifica"), quando si clicca un'image.

Questo è quanto sto facendo:

<a onclick="$("#notification").fadeOut(300,function() { $("#notification").remove(); });" class="notificationClose "><img src="close.png"/></a> 

Questo sembra non funzionare. Cosa devo fare per risolvere questo problema?

Prova questo:

 <a onclick='$("#notification").fadeOut(300, function() { $(this).remove(); });' class="notificationClose "><img src="close.png"/></a> 

Penso che le tue doppie citazioni in giro per l' onclick non lo fanno funzionare. 🙂

EDIT : Come sottolineato di seguito, il javascript in linea è male e probabilmente dovresti togliere questo onclick e spostarlo al gestore di events di click() di jQuery. Questo è il modo in cui i bambini freddi lo stanno facendo oggi.

si dovrebbe veramente provare a utilizzare jQuery in un file separato, non in linea. Ecco cosa ti serve:

 <a class="notificationClose "><img src="close.png"/></a> 

E poi questo nella parte inferiore della tua pagina in alless <script> o in un file JavaScript esterno.

 $(".notificationClose").click(function() { $("#notification").fadeOut("normal", function() { $(this).remove(); }); }); 

Se lo si utilizza in diversi luoghi, è necessario trasformarlo in un plugin.

 jQuery.fn.fadeOutAndRemove = function(speed){ $(this).fadeOut(speed,function(){ $(this).remove(); }) } 

E poi:

 // Somewhere in the program code. $('div').fadeOutAndRemove('fast'); 

Hai provato questo?

 $("#notification").fadeOut(300, function(){ $(this).remove(); }); 

Cioè, usando la corrente di questo context per indirizzare l'elemento nella function interiore e non l'id. Io uso questo model tutto il tempo – dovrebbe funzionare.

Uso

 .fadeOut(360).delay(400).remove();