La décoloration plusieurs éléments simultanément - jquery
Je veux faire ce qui suit:
$(newPanel, prevBtn, nextBtn, infoPanel).fadeIn(200, function() {
}
ces revendeurs à valeur ajoutée sont les divs créé avec jquery
mais seul le premier élément passe, j'ai vraiment besoin de tous les éléments à s'estomper en même temps.
OriginalL'auteur Wesley | 2011-08-05
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
add
méthode pour obtenir les éléments d'un même objet jQuery:J'ai ajouté une fonction de rappel et le rappel est exécuté quatre fois. Est-ce normal avec tout groupement?
Comme vous l'avez quatre éléments dans l'objet jQuery, chaque animation a sa propre fonction de rappel. À partir de la documentation: "Si plusieurs éléments sont animés, il est important de noter que le rappel est exécutée une fois par appariés élément, pas une seule fois pour l'animation dans son ensemble." api.jquery.com/fadeIn
Supposons que pour avoir un tableau de jQuery objets, vous pouvez les ajouter dans un cycle de
newPanel
? Merci à l'avance.Où
j
est l'objet jQuery etarr
est la matrice de jQuery objets à ajouter à:for (var i = 0; i < arr.length; i++) j = j.add(arr[i]);
OriginalL'auteur Guffa
En supposant que
newPanel
et ainsi de suite sont des variables créées comme ça:il suffit d'écrire:
OriginalL'auteur Fender
Soit le faire à l'aide d'un
$.each
appel ou je vous recommande de les grouper par une classe ou un id et fondu à l'aide que.Par exemple, vous pouvez regrouper tous les éléments connexes dans les classes et ensuite faire un
$.each
appel sur ces classes à la place de chaque élément.Vous voulez dire que si vous avez une fonction de rappel à appeler lorsque l'animation est terminée il déclenche une fois pour l'ensemble de la collection d'éléments à l'aide de la classe ou une seule fois pour chaque élément à l'aide de la classe? En fait, je ne sais pas par cœur. Je suppose qu'il déclenche une fois pour chaque élément, bien que depuis je pense qu'il est fixé sur chaque élément. Ce problème pourrait être surmonté par l'ajout d'une case si le rappel a déjà été appelé une seule fois. Quelque chose comme
if(!firsttime) return;
. Peut-être pas la plus jolie chose du monde, mais il pourrait fonctionner.OriginalL'auteur inquam
mise à jour:
Et si vous voulez appeler la fonction qu'une seule fois, vous pourriez faire quelque chose comme @Guffa n' en ajoutant les éléments de la même jQuery collecte et alors seulement d'appliquer l'animation (une fois):
OriginalL'auteur gion_13