2009-12-15 5 views

Répondre

28

Vous pouvez utiliser empty() pour supprimer un <div> contenu:

setTimeout(fade_out, 5000); 

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

supposant:

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

Vous pouvez le faire avec une fonction anonyme si vous préférez:

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

ou même:

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

setTimeout(fade_out, 5000); 

Ce dernier est parfois préféré car il pollue l'espace de noms global moins.

+0

fonctionne bien mais je ne peux pas rappeler que div nouveau .. je dois supprimer le texte de contenu div tout en gardant la div lui-même pour une nouvelle utilisation ... grâce –

+1

supprimer l'appel à vide() et juste faire la fadeOut() –

+0

parfait .. merci beaucoup –

1

Vous devez définir quelque chose comme setTimeout ('$ ("# id"). FadeOut ("lent")', 5000), mais autre que cela dépend de ce que le reste de votre code ressemble

3
$.doTimeout(5000, function(){ 

// hide the div 
}); 
1

Cela devrait fonctionner:

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

Quel est le problème avec $ .doTimeout? Est-ce à partir d'un plugin, ou une partie du noyau? – ScottE

+0

Voir http://benalman.com/projects/jquery-dotimeout-plugin/, dans ce cas j'utiliserais juste window.setTimeout pensé, ne vaut pas vraiment le coût d'un plugin pour quelque chose d'aussi simple –

3

Vous pouvez essayer les .delay()

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

appel div défini le temps de retard en millisecondes et définissez la propriété que vous souhaitez modifier, dans ce cas, je .fadeOut() afin qu'il puisse être animé, mais vous pouvez aussi utiliser .hide().

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

0

Vous devrez peut-être afficher à nouveau div texte après qu'il a disparu. Cela peut être fait en 1 ligne.

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