Comment masquer les #résultats après 5 secondes? J'ai essayé ça mais ça ne marche pas.
$('#results').hide().html(data).fadeIn('slow').delay(5000).hide();
Ce que j'avais c'est celui-ci
$('#results').hide().html(data).fadeIn('slow');
3 réponses
Mettez une durée sur votre hide()
appel et cela fonctionnera comme ceci:
$('#results').hide().html(data).fadeIn('slow').delay(5000).hide(1);
Le problème est que hide()
sans aucun paramètre n'est qu'une opération immédiate. Il ne passe pas par la file d'attente fx, donc il ne vient pas après le .delay(5000)
. Mais, si vous donnez une durée à la fonction comme .hide(1)
, alors elle devient une animation et elle passe par la file d'attente fx et viendra donc après le .delay(5000)
.
Vous pouvez le voir fonctionner ici: http://jsfiddle.net/jfriend00/wzbtU/
Dans le doc jQuery pour hide()
:
Lorsqu'une durée est fournie, .hide () devient une méthode d'animation.
Vous devez utiliser setTimeout
.
setTimeout("$('#results').hide().html(data).fadeIn('slow');", 5000);
La raison pour laquelle .delay(5000)
ne fonctionne pas est que .hide()
n'est pas inclus dans la file d'attente d'animation.
Voulez-vous dire quelque chose comme:
$('#results').hide().html(data).fadeIn('slow');
setTimeout(function() {
$('#results').hide();
}, 5000);
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.