2017-07-17 1 views
0

J'ai une div dynamiquement génératrice qui n'est pas au moment du chargement. Il est généré plus tard dans le document. Alors, comment puis-je cibler ce div et le cacher après un certain temps. Le div est la suivante:détecter et masquer dynamiquement la création de div après une seconde spécifique (pas onclick)

<div class="message-sent">Your Message has been sent</div> 

Important: Je parle tant d'articles, mais tout le monde parle 'onclick'. Je ne veux pas d'événement de clic. Je veux juste cacher cette div quand il apparaît dans le document. Merci d'avance!

Répondre

0

Vous devriez essayer la fonction setTimeout. De même, si div est le seul membre de l'arborescence DOM qui possède cette classe, utilisez un ID. C'est mieux IMO. Quoi qu'il en soit , en supposant que vous voulez cacher tous les membres du message-sent -class, il va quelque chose comme ceci:

setTimeout(function(){ 
    $('.message-sent').hide(); 
}, 2000) 

Dans lequel le 2000 est la variable qui indique le temps (millisecondes)

+0

salut ami ... ce code fonctionne avec div déjà existant. Mais dans mon cas, '.message-send' div est créé après un long moment après avoir cliqué sur un bouton. –

+0

Pourriez-vous ajouter le code où vous créez dynamiquement le div? –

+0

if (! $ Mail-> send()) { echo 'Le message n'a pas pu être envoyé.'; echo 'Erreur Mailer:'. $ mail-> ErrorInfo; } else { echo '

Your Message has been sent
';} une fois que mon courrier est un succès avec php, alors ce div est en train de générer. Mais je ne peux pas faire cela après un certain temps avec jQuery car cela n'existe pas dans le document. –

0
  1. vous pouvez ajouter un affichage de style: aucun.
  2. vous pouvez ajouter le style après le temps (3000ms) comme ceci:

    setTimeout(function(){ 
        document.getElementsByClassName("message-sent")[0].style.display="none"; 
    }, 3000); 
    

Note: il est préférable si vous utilisez une carte d'identité au lieu d'une classe pour identifier votre div.

+0

Salut ami cela ne fonctionne pas. Vous codez est bon pour div déjà existant. Mais pour générer dynamiquement div, cela ne fonctionne pas. La div 'message-envoyé' n'existe pas dans le document en cours de chargement. il génère plus tard un clic sur un bouton de soumission. –

+0

Eh bien, si vous appelez la fonction après l'événement de clic, la div devrait être là plus tard. – mygeea

0

Vous pouvez DOMNodeInserted,

$(document).bind('DOMNodeInserted', function(event) { 
var element = document.getElementsByClassName("message-sent"); // get all elements with class message-sent 
var lastchild = element[element.length - 1]; // get the last one (others are hidden) 
if(lastchild != null){ 
    lastchild.style.visibility = 'hidden'; // set visibility to hidden 
} 
}); 

travail demo

espoir aide,