2011-03-15 2 views
0

J'ai quelques éléments qui sont animés en cliquant sur une flèche.
Maintenant, je veux que s'ils sont animés, appeler un événement. Le fait est qu'ils sont tous animés de différentes manières, donc je devrais
déclencher cet événement séparément sur chaque élément.
Lier un événement à une animation

est-il un moyen de faire quelque chose comme $('div:animated').live(...) ou quelque chose
qui déclenche un événement sur les éléments d'animation?

+0

ne fonctionne pas? http://api.jquery.com/animated-selector/ –

+0

cela ne se déclencherait qu'une seule fois, j'ai besoin de lier quelque chose chaque fois qu'une animation se produit – Asaf

+0

Vous pouvez créer un déclencheur que vous appelez chaque fois que vous exécutez 'animate() ' –

Répondre

0
$("div").animate({ 
    "top":20 
},1000,function(){ 
    callback(); 
}); 

function callback(){ 
    //stuff here 
} 

ou

$("#layer1, #layerMask").animate({ 
    "top":10 
},{ 
    queue:false, 
    duration:1000, 
    easing:"easing method if required", 
    complete:function(){ 
    callbacks(); 
    } 
}); 

function callback(){ 
    //stuff here 
} 

meilleure façon! utilisez simplement le rappel à chaque fois que vous animez un élément. Les seules autres façons que je peux penser à des choses comme setInterval et vérifier la valeur supérieure de l'élément pour le changement, etc, mais ce serait malpropre et déconseillé. Il suffit de prendre le coup et d'utiliser les rappels. meilleur entrainement.

À moins que quelqu'un d'autre ait des idées.

Questions connexes