|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre habitué
![]() ![]() Geoffray Inscription : août 2002 Messages : 137 ![]() |
Bonsoir,
J'ai réussi à isoler dans l'exemple ci-dessous un phénomène que je n'arrive pas à expliquer. Il s'agit d'une animation d'un élément pour laquelle la fonction callback semble se lancer 2x. Pour bien comprendre ce que je cherche à réaliser, j'ai réduit le problème en un exemple simpliste de chat/souris : Au chargement de la page, 1 petit div (qui représente une souris) se déplace aléatoirement de gauche à droite grâce à une animation infinie. Idéalement il doit y avoir plusieurs souris, mais pour simplifier je n'en affiche qu'une. Lors du clic sur un bouton, 1 autre div (le chat) commence à se déplacer. Une fois l'animation du chat terminée, je décide d'immobiliser les souris. Voici le code : Code :
Code :
Quelqu'un aurait une explication ? Peut-être que je m'y prend mal pour la boucle infinie ? Merci pour vos idées, toute piste est bonne à prendre. PS : J'ai testé sous Firefox 7.0.1 avec jQuery1.6.4, 1.6.3 et 1.6.2 |
||||
|
00
|
|
|
#2 |
|
Membre habitué
![]() ![]() Geoffray Inscription : août 2002 Messages : 137 ![]() |
Bonjour, je ne sais pas si ma description du problème est assez compréhensible. Pour ceux qui souhaiteraient tester par l'exemple, je l'ai mis à disposition ici : http://www.geoffray.be/public/demo/anim_jquery.html
Merci d'avance |
|
00
|
|
|
#3 |
|
Membre habitué
![]() Mathias PhilippeDéveloppeur Web Inscription : septembre 2011 Messages : 75 ![]() |
Sous Chrome chez moi le log n'a lieu qu'une seule fois. Tu utilises quel navigateur ?
|
|
00
|
|
|
#4 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 30 040 ![]() |
Je ne vois rien d'anormal sous ffx ...
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#5 | ||||
|
Membre habitué
![]() ![]() Geoffray Inscription : août 2002 Messages : 137 ![]() |
Le cas ne se produit pas à chaque fois... il faut recharger la page puis cliquer sur le bouton. Parfois le log affiche 2x "cat stopped" alors que ça ne devrait apparaître qu'une seule fois.
Parfois le callback est appelé 2x : Code :
Code :
|
||||
|
00
|
|
|
#6 |
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonsoir
Je suggère de tester : $(e).stop(true, true);
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|
00
|
|
|
#7 |
|
Membre habitué
![]() ![]() Geoffray Inscription : août 2002 Messages : 137 ![]() |
Bonjour Daniel, merci pour ta suggestion mais elle n'y change rien malheureusement. J'ai même essayé toutes les combinaisons de paramètres dans la méthode stop()
Honnêtement, je ne vois pas où je m'y prends mal... mais avant d'imaginer l'hypothèse d'un bug dans la lib, je préfère me dire qu'il doit y avoir une subtilité qui m'échappe... mais ou ? PS : Est-ce que le problème indiqué se manifeste aussi chez d'autres personnes, ou suis-je le seul ? |
|
00
|
|
|
#8 | ||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonjour
Le problème existe bien, c'est une bogue de la version 1.6.4 qui semble avoir été corrigée dans la version 1.7 b1. Attention cette version Beta à d'autres bogues surtout avec UI. Code :
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
||
|
00
|
|
|
#9 | ||
|
Membre habitué
![]() ![]() Geoffray Inscription : août 2002 Messages : 137 ![]() |
Merci Daniel pour cette nouvelle ! Aurais-tu par hasard plus d'infos sur le bug en question car je ne le trouve pas dans le changelog de la 1.7 http://blog.jquery.com/2011/09/28/jq...ta-1-released/
Il serait en effet utile de savoir dans quelles conditions le cas se produit, car si n'importe quel callback est susceptible d'être démarré plusieurs fois, c'est assez problématique ! En attendant une release stable, j'ai choisi d'opter pour un "hack" maison... Code :
|
||
|
00
|
|
|
#10 | |||
![]() ![]() Daniel HagnoulÉtudiant perpétuel Inscription : février 2009 Messages : 3 221 ![]() |
Bonsoir
Avec 1.6.4, en utilisant une vraie fonction plutôt qu'une fonction anonyme comme fonction de rappel, je ne vois plus la bogue causée par la méthode stop (voir la liste des corrections de bogue de 1.7b1). Blog jQuery, extrait du "changelog" de 1.7b1 Citation:
Code :
__________________
FAQ jQuery Mon cahier d’exercices sur jQuery & CoSi un message vous a aidé ou vous semble pertinent, votez pour lui ! ![]() |
|||
|
00
|
Copyright © 2000-2012 - www.developpez.com