jQuery - méthode queue()
Exemple
Afficher la longueur de la file :
function showIt() { var n = div.queue("fx"); $("span").text( n.length ); setTimeout(showIt, 100); }
Définition et utilisation
La méthode queue() affiche ou opère sur la file de fonctions exécutées sur les éléments correspondants.
Syntaxe
.queue(queueName)
Paramètres | Description |
---|---|
queueName | Optionnel. Valeur de chaîne contenant le nom de la séquence. Par défaut, c'est fx, la séquence d'effets standard. |
Opérations sur la file
La méthode queue() opère sur la file de fonctions exécutées sur les éléments correspondants.
Syntaxe
.queue(queueName,newQueue)
Paramètres | Description |
---|---|
queueName | Optionnel. Valeur de chaîne contenant le nom de la séquence. Par défaut, c'est fx, la séquence d'effets standard. |
Explication détaillée
Chaque élément peut posséder une à plusieurs files de fonctions ajoutées par jQuery. Dans la plupart des applications, une seule file est utilisée (nommée fx). La file exécute de manière asynchrone une séquence d'actions sur l'élément sans interrompre l'exécution du programme. Un exemple typique est l'appel de plusieurs méthodes d'animation sur un élément. Par exemple :
$("#foo").slideUp().fadeIn();
Lorsque cette instruction est exécutée, l'élément commence immédiatement son animation glissante, mais la transition d'effet de fondu est placée dans la file fx et ne sera appelée que lorsque la transition glissante est terminée.
La méthode .queue() nous permet de manipuler directement cette file de fonctions. L'appel de .queue() avec une fonction de rappel est particulièrement utile ; il permet de placer une nouvelle fonction à la fin de la file.
Cette fonctionnalité est similaire à la fourniture de fonctions de rappel par les méthodes d'animation, mais sans devoir définir de fonctions de rappel pendant l'exécution de l'animation.
$("#foo").slideUp(); $("#foo").queue(function() { alert('Animation terminée.'); $(this).dequeue(); });;
C'est équivalent à :
$("#foo").slideUp(function() { alert('Animation terminée.'); );
Veuillez noter que lorsque des fonctions sont ajoutées via .queue(), nous devons nous assurer que .dequeue() est appelé en dernier, afin que la prochaine fonction de la file puisse être exécutée.
Exemple 1
Effectuer des opérations de file sur une fonction personnalisée :
$("document.body").click(function () { $("div").show("slow"); $("div").animate({left:'+=200'},2000); $("div").queue(function () { $(this).addClass("newcolor"); $(this).dequeue(); });; $("div").animate({left:'-=200'},500); $("div").queue(function () { $(this).removeClass("newcolor"); $(this).dequeue(); });; $("div").slideUp(); );
Exemple 2
Définir un tableau de file pour supprimer la file :
$("#start").click(function () { $("div").show("slow"); $("div").animate({left:'+=200'},5000); $("div").queue(function () { $(this).addClass("newcolor"); $(this).dequeue(); ); $("div").animate({left:'-=200'},1500); $("div").queue(function () { $(this).removeClass("newcolor"); $(this).dequeue(); ); $("div").slideUp(); ); $("#stop").click(function () { $("div").queue("fx", []); $("div").stop(); );