2012-07-26 2 views
0

Je voudrais qu'un bouton clignote pendant une courte durée avant un appel AJAX (et d'autres animations se produisent). L'appel ajax arrive très vite, donc je ne veux pas utiliser la fonction avant AJAX. Le clignotement doit être distinct avant toute autre animation. Je me sens comme s'il y a une plus jolie façon de le faire:Une meilleure façon de faire clignoter un bouton jQuery?

 //This is inside of a button click event 
     $(this).addClass('active').delay(250).queue(function (e) { 
      $(this).removeClass('active').delay(250).queue(function (f) { 
       alert(33); 
       $child.css('margin-left', $(window).width() + 10 + 'px'); 
       $child.load(url + 'API CALL' + $(this).data("id"), bindAClicks); 
      }); 
     }); 

bindAClicks - à la marge Anime: 0.

$ child est un conteneur div.

active est une classe avec un fond sombre.

Ce qui est bizarre, c'est que l'alerte ne se déclenche même pas.

+0

Si vous faites référence à beforeSend, je vous recommande de vérifier cette réponse qui montre comment attendre que votre animation se termine avant. http://stackoverflow.com/questions/5212949/jquery-ajax-wait-until-beforesend-animation-finishes – JasCav

+0

Merci. Cet AJAX n'est qu'un exemple. J'ai besoin de la même fonctionnalité sur mes boutons non-ajax. Si vous faites ceci dans une réponse je vous donnerai le représentant – user974896

+0

Pourquoi le fait "avant"? AJAX est asynchrone, lance une demande et clignote votre bouton en attendant la réponse. –

Répondre

0

Si vous faites référence à beforeSend, je vous recommande de vérifier this answer qui montre comment attendre que votre animation se termine.

En réponse au commentaire d'Oleg, je ne suis pas sûr du problème que vous rencontrez lorsque vous dites que la réponse est si rapide que vous ne pouvez pas voir le clignotement. J'ai créé un quick example pour montrer comment cela fonctionnerait (de sorte que vous pouvez faire l'appel Ajax et toujours effectuer le clignotement). Espérons que cela aide.

Questions connexes