2012-11-28 2 views
0

Si vous regardez à travers ce peu de script où vous voyez alert ('hé'), ceci est ajouté cinq fois dans la tête du document ... il ne pose pas de problème mais je veux savoir comment le faire arriver une seule fois ???.append() une seule fois ??? il est ajouté cinq fois dans la tête

$('#logo').fadeIn(2000, function() { 
     $(this).animate({ top: "-=20px" },{ 
     duration: 1000, 
     specialEasing: {top: 'easeOutQuad', left: 'easeInQuad'},  
      complete: function() { 
       $(this).animate({ top: "63px" },{ 
       duration: 1000, 
       specialEasing: {top: 'easeOutQuad', left: 'easeInQuad'},  
        complete: function() { 
        } 
       }); 
       $('.home,.about,.investments,.media,.contact').animate({ top: "+=106px" },{ 
       duration: 2000, 
       specialEasing: {top: 'easeOutQuad', left: 'easeOutQuad'},  
        complete: function() { 
         $('#ballTarp').remove(); 
         $("head").append('<link href="css/hoverStates.css" rel="stylesheet" type="text/css">'); 
         alert('hey'); 
         $('#ball').removeClass('home').addClass('activeHome'); 
         $('.activeTitle').fadeIn("fast"); 
         $('.dropShadow').fadeIn(7000); 
         $('footer').fadeIn("fast"); 
         $('.title').fadeIn("slow"); 
         $('.login').fadeIn(3000); 
        } 
       }); 
      } 
    }); 

Répondre

3

qu'il appelle la fonction complète pour chacun de vos sélecteurs (.home, .sur, .investments, .media, .Contact).

C'est pourquoi il est ajouté 5 fois.

Cela devrait fonctionner ...

$('#logo').fadeIn(2000, function() { 
    $(this).animate({ top: "-=20px" },{ 
    duration: 1000, 
    specialEasing: {top: 'easeOutQuad', left: 'easeInQuad'},  
     complete: function() { 
      $(this).animate({ top: "63px" },{ 
      duration: 1000, 
      specialEasing: {top: 'easeOutQuad', left: 'easeInQuad'},  
       complete: function() { 
       } 
      }); 
      $('.home,.about,.investments,.media,.contact').animate({ top: "+=106px" },{ 
      duration: 2000, 
      specialEasing: {top: 'easeOutQuad', left: 'easeOutQuad'},  
       complete: function() { 
        $('#ballTarp').remove(); 
        // not here... 
        $('#ball').removeClass('home').addClass('activeHome'); 
        $('.activeTitle').fadeIn("fast"); 
        $('.dropShadow').fadeIn(7000); 
        $('footer').fadeIn("fast"); 
        $('.title').fadeIn("slow"); 
        $('.login').fadeIn(3000); 
       } 
      }, function(){ 
       // but here... 
       $("head").append('<link href="css/hoverStates.css" rel="stylesheet" type="text/css">'); 
       alert('hey'); 

      }); 
     } 
}); 
+0

WOW je me Amaze parfois – DJERock

+0

Alors oui, chose Est-ce que j'ai besoin que cela se produise une fois que cette partie de l'animation est terminée? Y a-t-il un moyen possible de l'empêcher de changer les sélecteurs? – DJERock

0

Il est parce qu'il est en cours d'exécution 5 fois, une fois chacun pour chaque élément de votre sélecteur.

$('.home,.about,.investments,.media,.contact') 
0

bien OK Merci @teewuane et @epascarello pour me faire voir l'évidence ... #brainFart mais voici comment je l'ai fixé

$('#logo').fadeIn(2000, function() { 
     $(this).animate({ top: "-=20px" },{ 
     duration: 1000, 
     specialEasing: {top: 'easeOutQuad', left: 'easeInQuad'},  
      complete: function() { 
       $(this).animate({ top: "63px" },{ 
       duration: 1000, 
       specialEasing: {top: 'easeOutQuad', left: 'easeInQuad'},  
        complete: function() { 
        } 
       }); 
       $('.home,.about,.investments,.media,.contact').animate({ top: "+=106px" },{ 
       duration: 2000, 
       specialEasing: {top: 'easeOutQuad', left: 'easeOutQuad'},  
        complete: function() { 
         $('#ballTarp').remove(); 
         $('#ball').removeClass('home').addClass('activeHome'); 
         $('.activeTitle').fadeIn("fast"); 
         $('.dropShadow').fadeIn(7000); 
         $('footer').fadeIn("fast"); 
         $('.title').fadeIn("slow"); 
         $('.login').fadeIn(3000); 
        } 
       }); 
       $("head").append('<link href="css/hoverStates.css" rel="stylesheet" type="text/css">'); 
      } 
    });