2009-12-15 16 views

risposta

28

È possibile utilizzare empty() per rimuovere un <div> contenuti:

setTimeout(fade_out, 5000); 

function fade_out() { 
    $("#mydiv").fadeOut().empty(); 
} 

assumendo:

<div id="mydiv"> 
    ... 
</div> 

Si può fare questo con una funzione anonima, se si preferisce:

setTimeout(function() { 
    $("#mydiv").fadeOut().empty(); 
}, 5000); 

o anche:

var fade_out = function() { 
    $("#mydiv").fadeOut().empty(); 
} 

setTimeout(fade_out, 5000); 

Quest'ultimo è a volte preferito perché inquina lo spazio dei nomi globale meno.

+0

lavorando bene ma non riesco a ricordare che div nuovo .. ho bisogno di rimuovere il testo contenuto div mantenendo il div se stesso per un nuovo uso ... grazie –

+1

quindi rimuovere la chiamata a vuoto() e solo fare il fadeOut() –

+0

perfetto .. molte grazie –

1

Lei avrebbe bisogno di impostare qualcosa di simile a setTimeout ('$ ('# id'). FadeOut ('lento')', 5000) ma a parte questo dipende da ciò che il resto del codice assomiglia

3
$.doTimeout(5000, function(){ 

// hide the div 
}); 
1

Questo dovrebbe funzionare:

$(document).ready(function() { 
    $.doTimeout(5000, function() { 
     $('#mydiv').fadeOut(); 
    }); 
}); 
+0

Qual è l'accordo con $ .doTimeout? È da un plugin o parte del core? – ScottE

+0

Vedere http://benalman.com/projects/jquery-dotimeout-plugin/, in questo caso vorrei solo usare window.setTimeout pensato, non vale davvero il costo di un plugin per qualcosa di così semplice –

3

si può provare il .delay()

$(".formSentMsg").delay(3200).fadeOut(300); 

chiamata div impostare il tempo di ritardo in millisecondi e impostare la proprietà che si desidera modificare, in questo caso ho usato .fadeOut() in modo che possa essere animato, ma puoi anche usare .hide().

http://api.jquery.com/delay/

0

Potrebbe essere necessario visualizzare nuovamente div testo dopo che è scomparso. Questo può essere fatto in 1 linea.

$('#div_id').empty().show().html(message).delay(3000).fadeOut(300); 
Problemi correlati