Je suis en train d'écrire un rotateur de bannières et je veux qu'il fasse défiler quelques images après quelques secondes. Est-ce que jQuery a quelque chose à attendre et à appeler le callback? Je peux voir la méthode .delay, mais il ne semble pas avoir une fonction de rappel. Ou peut-être que je devrais utiliser une fonction dépendante du navigateur? Ou peut-être que javascript contient déjà une fonction dont j'ai besoin? Je suis nouveau sur javascript: - | .chronométrage/attente en jQuery
Répondre
Vous pouvez toujours utiliser le javascript natif:
setTimeout(function(){ /* do your stuff */ }, 1000);
Vous pouvez vous amuser avec mixins:
var timeoutCallback = function() {
this.foo = 5;
}
var scheduleTimeout = function(obj, delay) {
setTimeout(function(){ timeoutCallback.call(obj); }, delay);
}
var myobj = { foo: 1, bar: 2 }
scheduleTimeout(myobj, 1000); // myobj.foo becomes 5 after 1000ms delay
Vous avez raison sur délai being
la voie à suivre, si ce que vous souhaitez faire est le temps des effets jQuery.
Regardez le jQuery documentation on effects, et faites très attention au fonctionnement de la file d'effets, c'est un très bon framework. :)
Vous avez donc besoin de commencer votre effet pas immédiatement, mais après un certain temps? Donc, c'est vrai, c'est la fonction delay().
$("#test").delay(3000).fadeOut('slow');
// after 3 seconds element starts to fade out
P.S.
Mais soyez prudent avec le retard. Par exemple ce code:
$("#test").fadeOut(1000).sleep(1000).fadeIn(1000);
ne fonctionnera pas comme quelqu'un peut penser. Le sommeil sera synchrone avec fadeOut mais pas après qu'il se termine. Donc, si vous voulez faire un effet complet et que faire quelque chose - vous devriez faire par la fonction de rappel.
Ceci est l'exemple le plus simple que je puisse penser et une version condensée de ce que Joy Dutta a déjà dit. Il montre d'abord "Please wait" et après 3 secondes "... done!". Jetez-le dans la console Firebug et voyez ce qui se passe :-)
$('body').html('Please wait!');
setTimeout(function(){$('body').html('...done!');}, 3000);
- 1. en utilisant accepter: en jquery
- 2. Bibliothèque jquery en conflit avec jquery mobile
- 3. Buzz en utilisant jquery
- 4. JQuery - gérer en cliquant
- 5. Lightbox en utilisant jquery
- 6. validation en utilisant jquery
- 7. Jquery Chargement en cours?
- 8. en utilisant JQuery
- 9. inspection jquery en chrome
- 10. javery en jquery conversions
- 11. jQuery hover en direct()?
- 12. HTML en sortie JQuery
- 13. jquery menu en surbrillance
- 14. Sélecteurs Jquery en profondeur
- 15. .wrap() en jQuery (Multiple)
- 16. jQuery validation en direct
- 17. Sélecteur JQuery en XML
- 18. jquery tagify prise en
- 19. jQuery branche en question
- 20. trouver jQuery en valeur
- 21. jquery en cfm lié
- 22. jquery en direct tabIndex
- 23. jQuery Validation en ASP.NET
- 24. Multifonction en Javascript (jQuery)
- 25. variable jquery en fonction
- 26. jQuery en conflit?
- 27. En utilisant Attr Jquery
- 28. Conversion d'AJAX en jQuery
- 29. Jquery Carte en surbrillance
- 30. Mise en Javascript jQuery
Etes-vous sûr que '.call' fonctionnera? cela ne pointerait-il pas vers l'objet 'window' à l'intérieur de la fonction anon? –
Vous avez raison, j'ai modifié le post après avoir vérifié qu'il fonctionne maintenant. Merci! –