2010-10-26 6 views
4

Je ne peux pas pour la vie de moi comprendre quel est le problème avec ce code. L'animation elle-même fonctionne très bien:fonction de rappel anonyme dans .animate() ne fonctionne pas

if (!list.is(':animated')) { 
    list.animate(
     {"top": "+="+item_size}, 
     {queue:false, duration:speed}, 
     function() { 
      alert(); 
     } 
    ); // end of animate function 

} //end of if statement 

Répondre

5

Vous mélangez les deux signatures de .animate(). Vous devez faire le rappel d'une partie de l'argument options:

if(!list.is(':animated')){ 
    list.animate({ 
     top: "+="+item_size 
    }, //end of properties argument 
    { 
     queue: false, 
     duration: speed, 
     complete: function(){ 
      alert(); 
     } //end of callback 
    } // end of options argument 
    ); // end of animate function 
} //end of if statement 
+0

* frappe la tête sur le mur * Merci beaucoup pour ça! Je suis un novice en date d'hier - pouvez-vous le dire? : P –

+0

@hugh Nous avons tous été là! Si cette réponse a répondu à votre question, vous pouvez la marquer en cliquant sur la coche vide à gauche de la réponse. – lonesomeday

+0

Vous avez été coché;) Merci compagnon –

1

Vérifiez la API, vous ne semble pas appeler le droit de la fonction:

.animate(properties, [ duration ], [ easing ], [ callback ]) 

Devinez c'est comment vous devez appeler il:

.animate({"top": "+="+item_size}, speed, 'linear', function(){alert();}); 

changement linear à quelque fonction easing dont vous avez besoin.

+0

Merci beaucoup! J'ai résolu le problème un moment avant ces deux messages en supprimant simplement {queue: false, duration: speed} et en le remplaçant par speed, mais c'est génial de savoir comment je peux inclure ce paramètre si j'en ai besoin. –

Questions connexes