je suis en utilisant la fonction de bascule jquery comme ceci:Jquery - à l'aide bascule() mais le désactiver jusqu'à ce que les animations sont faites
$(".class").toggle( function() { //things to do... animations and so on }, function(){ // other things to do... } );
Maintenant, quand je l'appelle l'effet de levier en cliquant très souvent les animations de les deux fonctions n'attendent pas que l'autre finisse. Donc, je voudrais désactiver les effets de bascule jusqu'à ce que le contenu de chaque fonction soit fini. Ainsi, lorsque la première fonction est appelée par la bascule, la seconde ne doit pas être appelée par un autre clic sur l'élément .class. Et l'inverse
Une idée de comment je pourrais faire ça?
Merci à l'avance, Phil
Merci pour le conseil sur le pseudo-sélecteur animé. Je ne savais pas que c'était possible. J'avais l'habitude d'implémenter .queue() mais: animated semble plus adapté aux petites animations. – jpluijmers
Merci pour votre réponse. J'ai implémenté votre code et en ajoutant une alerte avant le retour faux je reconnais que le if devient vrai. Mais je pense que cela ne fonctionne pas correctement. Je peux toujours appeler l'effet de bascule très souvent en cliquant rapidement sur l'objet. Vous pouvez voir un effet similaire à la démo documentation jquery de toggle() http://api.jquery.com/toggle/ Voir l'exemple avec le bouton toggle em et cliquez très rapidement très souvent. Les animations sont effectuées même si vous ne cliquez plus. J'ai toujours cet effet avec mon code et la fonction de clic que vous avez affichée ci-dessus. Une aide à ce sujet? – Phil
@Phil - Dans ce cas, vous mettez en file d'attente des animations (assurez-vous également que votre sélecteur vérifie les bons éléments ... ceux que vous animez). Si vous voulez '.toggle()' pour arrêter les animations lorsque vous faites les * autres * animations, jetez un oeil à ['.stop()'] (http://api.jquery.com/stop/) par exemple vous ' d probablement vouloir '$ (this) .stop (true, true) .animate (...)' au lieu de '$ (this) .animate()', quel que soit l'élément que vous animez, juste '.stop()' Pour terminer l'animation précédente, les arguments 'true' doivent passer à la fin et effacer la file d'attente. –