|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité régulier
![]() |
Bonjour,
j'ai un problème avec l'une de mes requêtes AJAX réaliser via Jquery. Dans mon premier fichier index.html, je réalise l'appel du script result.php comme ceci : Code :
Cela pourrai très bien fonctionner mais par exemple si j'ai 10 div qui me sont retourné, ils apparaitrons en même temps, ce qui me plais moyennement. j'avais pensais faire dans success : Code :
Mais le sélecteur $('.maClass', data) ne fonctionne pas. Ma méthode est elle la bonne ? Merci d'avance pour votre aide. Couss |
||||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 13 794 ![]() |
Il faut préciser que data est supposé être du HTML :
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() |
Bonjour,
Merci de pour ton aide. Mais malheureusement cela viens pas de ça. J'avais essayer en précisant le type de réponse sans succès, je croit en plus que html est le type par défaut. Néanmoins j'ai réussi a contourner le problème en remplissant le div avec mes données retourné puis en cachant sont contenue comme ceci : Code :
Ce qui n'est pas le cas ici tous les div s'affiche en 3sec. Couss |
||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Pour un affichage successif, on a déjà traité le cas ici:
http://www.developpez.net/forums/d10...in-boucle-for/ L'idée est d'utiliser la méthode de callback que tu peux appeller à la fin du fadeIn. Ce n'est pas exactement la même façon de lister les éléments que toi, mais le résultat désiré est le même. Tu peux donc t'inspirer de la solution.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() |
J'avais pensé utilise la fonction callback de fadeIn en retournant true pour passer à l'itération suivante du each() de cette facon :
Code :
$(this).fadeIn(3000).delay(5000, function() {return true;}); Et je rencontre un problème c'est que je connais pas à l'avance combien de div j'aurais et je n'est pas la possibilité d'utiliser d'id, seulement des classes. Donc pour la récursivité c'est impossible. Merci quand même Couss |
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Citation:
De plus le delay() là repousse l'action qui la suit. Mais vu qu'il n'y a rien derrière, ça tourne dans le vent. Pendant que le moteur sera déjà passé à l'itération suivante de ton each.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() |
J'ai essayer sur le fadeIn et sur le delay
Oui le delay() là repousse l'action qui la suit de 3 sec et ensuite exécute la fonction callback qui renvoi true et donc normalement fait passer au div suiviant. |
|
|
00
|
|
|
#8 | |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Citation:
tu devrais déporter ton fadeIn dans une autre méthode dédiée et dans laquelle tu pourras utiliser la méthode de callback dans le fadeIn et même une récursivité.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() |
Oula pas tout compris ^^.
C'est comme la méthode décrite dans le lien que tu ma linké plus haut ? C'est possible sans id des div ? |
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Dans le success de ton appel ajax, tu laisses l'instruction html() et le hide().
Après tu appelles une fonction séparée qui appliquera le fadeIn mais seulement sur le premier élément correspondant à ton sélecteur. Dans le callback de ce fadein, tu rappelles cette fonction avec le prochain élément correspondant à ton sélecteur si il existe. Si il n'existe pas, tu t'arrêtes. Récursion terminale et effet progressif désiré. Pour la pile d'appels, c'est assez simple: Tu fais ça: #début de la pile -> Je cache tout -> Je fais un fadeIn -> Je repouse de 300 la prochaine exécution de la pile #fin de la pile, retour au début pour une prochaine itération Vu que ton delay est le dernier élément exécuté dans ta pile, il tourne dans le vent. La prochaine itération correspond à une "autre" pile d'exécution et n'est donc pas impactée par tes delay. D'où la simultanéité de tes fadeIn malgré le delay.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
|
|
#11 | ||
|
Invité régulier
![]() |
Merci pour ta réponse et pour avoir résolu mon problème.
Je met mon code pour avoir confirmation sur la méthode utilisé, mais le résultat est la. Code :
Merci encore |
||
|
|
00
|
|
|
#12 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Bon déjà si ça marche, tant mieux, mais t'aurais pu faire un poil plus simple.
Avec un seul argument à ta méthode fadeInSuccessif et plus précisément l'objet sur lequel doit être appliqué le fadeIn. Comme ça dans ta récursion, tu appelles le suivant (voir du côté de .next()), et t'as pas besoin de faire un eq à chaque fois tout en réduisant ton nombre de paramètres. Au passage cette partie là: Elle ne sert strictement à rien. Idem pour le return false tout à la fin de ton script.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
|
|
#13 |
|
Invité régulier
![]() |
Voila c'est corriger.
Merci pour tes précieux conseil, je débute en jquery et je connais pas encore toutes l'étendu de ces fonctions, mais heureusement il y a une doc de qualité. Couss |
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() ![]() Mathieu ROBINDéveloppeur Web Inscription : mai 2006 Messages : 1 116 ![]() |
Pas de soucis, on a tous débuté un jour.
__________________
Mon blog techno et son billet hebdomadaire sur l'actualité jQuery. Et mon blog cuisine pour une personne. Le bouton ne masse pas les pieds, mais ça aide la communauté.
|
|
00
|
Copyright © 2000-2012 - www.developpez.com