2009-06-03 8 views
0

Est-il possible de définir une chaîne d'animations en tant que variable?définir une chaîne d'animations en tant que variable

Par exemple (ce que je pense, mais ne fonctionne pas?):

var speed = 500; 
var dothis = $("#div").slideUp('speed'); 
      $("#div").slideDown('speed'); 
      $("#div").animate({height: "0px"}, 'speed'); 
$("button").click(function() { 
     $(this).dothis(); 
    }); 

Je ne suis pas tout à fait sûr de savoir comment le configurer.

Répondre

1

On dirait que vous essayez d'exécuter une série d'actions plus tard ... dans ce cas, vous pouvez simplement résumer toutes vos commandes en fonction:

var dothis = function() { 
    $("#div").slideUp('speed'); 
    $("#div").slideDown('speed'); 
    $("#div").animate({height: "0px"}, 'speed'); 
    $("button").click(function() { 
     $(this).dothis(); 
    }); 
} 

Et puis plus tard, vous pouvez faire toutes les commandes à la fois en appelant la fonction:

dothis(); 
+0

Oui! C'est bien! Merci, Daniel. –

1

vous pouvez également étendre la fonction de Daniel à travailler avec tout élément qui lui est fourni en donnant la fonction d'un argument. Par exemple, en lui transmettant un élément ou un sélecteur:

var dothis = function(el) { 
    $(el).slideUp('speed'); 
    [...] 

En outre, pas qu'il ya une différence entre mettre chaque effet sur sa propre ligne ou les enchaînant comme $ (el) .slideUp() slideDown().. fondu() etc.

Si vous les mettez sur des lignes distinctes, ils exécuteront presque simultanément, alors que les enchaînant les files d'attente pour exécuter dans l'ordre.

Questions connexes