2010-12-06 10 views
11

je veux ajouter un div et après 5 secondes l'enlever. j'ai essayésupprimer nouveau div après 5 secondes

$("#mainContentTD").prepend("<div style='color: #038a00; padding-bottom:10px;'>Your detailes where sucsesfuly... </div>").delay(5000).remove("this:first-child"); 

Répondre

26

Vous pouvez utiliser setTimeout comme ceci:

setTimeout(function(){ 
    $('#divID').remove(); 
}, 5000); 

Les 5000 (ms) signifie 5 secondes. Vous devez remplacer divID par votre propre identifiant div/element.

Vous pouvez vous assurer que la div existe d'abord en utilisant length:

setTimeout(function(){ 
    if ($('#divID').length > 0) { 
    $('#divID').remove(); 
    } 
}, 5000) 
+2

est utile de noter que la vérification de l'existence de div est totalement inutile car jQuery ne commettra pas d'erreur lors de l'appel de $ .fn.remove() sur une collection jQuery vide. – tbranyen

6

La méthode .delay() fonctionne uniquement avec des méthodes qui utilisent la file d'attente d'effet standard ou une file d'attente personnalisée.

La méthode est la meilleure pour retarder les effets jQuery en file d'attente. Parce qu'il est limité - il n'offre pas, par exemple, un moyen d'annuler le délai - .delay() ne remplace pas la fonction natif setTimeout de JavaScript, ce qui peut être plus approprié pour certains cas d'utilisation.

Ie, vous pouvez soit utiliser setTimeout(): (Demo)

var $elm = $("<div style='color: #038a00; padding-bottom:10px;'>Your detailes where sucsesfuly... </div>"); 
$("#mainContentTD").prepend($elm); 
setTimeout(function() { 
    $elm.remove(); 
}, 5000); 

Ou, vous pouvez utiliser une méthode d'effet pour enlever à l'élément: (Demo)

$("#mainContentTD") 
    .prepend("<div style='color: #038a00; padding-bottom:10px;'>Your detailes where sucsesfuly... </div>") 
    .children(':first') 
    .delay(5000) 
    .fadeOut(100); 
+0

Hmm, peut-être que je devrais avoir mis à jour avant de poster :) Cependant, la première partie * peut * être utile. – jensgram

Questions connexes