JeuWeb - Crée ton jeu par navigateur
[Javascript] Utiliser variable dans le .animate({}) de jQuery ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Javascript] Utiliser variable dans le .animate({}) de jQuery ? (/showthread.php?tid=6486)



[Javascript] Utiliser variable dans le .animate({}) de jQuery ? - Argorate - 08-11-2012

Voilà, problème simple, et solution pas trouvé pour autant:

au lieu de faire "$('div').animate({left: '+=100'},1000);" directement, j'aimerais passer le "left" dans une variable car en fonction de d'autres choses cela peut erre "top"

du coup comment faire:

var toto = 'left';
$('div').animate({toto: '+=100'},1000);

puisque ceci ne marche pas (il met un attribut "toto" dans l'objet au lieu d'utilisé la valeur de la variable). et un eval(toto) créer une erreur de syntaxe, bref comment qu'on fait?!

merci.


RE: [JS]Utiliser variable dans le .animate({}) de jQuery? - niahoo - 08-11-2012

var toto = 'left';
var obj = {};
obj[toto] = '+=100';
$('div').animate(obj,1000);


RE: [JS]Utiliser variable dans le .animate({}) de jQuery? - Argorate - 08-11-2012

oui ça c'est que je fais actuellement, mais n'y a t-il pas un moyen de le faire "in-line" et sans rajouter une seconde variable qui contient l'objet en entier?


RE: [JS]Utiliser variable dans le .animate({}) de jQuery? - Sephi-Chan - 08-11-2012

Javascript ne me permet pas de créer un objet avec une clé dynamique. Les langages comme CoffeeScript peuvent permettre autoriser ce sucre syntaxique, mais ce serait bien sûr compilé en 2 instructions.


RE: [JS]Utiliser variable dans le .animate({}) de jQuery? - Argorate - 08-11-2012

Ok, bon je me contenterais de ça alors Confused


RE: [JS]Utiliser variable dans le .animate({}) de jQuery? - Maks - 08-11-2012

(08-11-2012, 08:57 PM)Sephi-Chan a écrit : Les langages comme CoffeeScript peuvent permettre autoriser ce sucre syntaxique, mais ce serait bien sûr compilé en 2 instructions.

Après une petite recherche cela avait été ajouté dans la v0.9.6 avant d'être retiré ensuite


RE: [Javascript] Utiliser variable dans le .animate({}) de jQuery ? - Sephi-Chan - 08-11-2012

Il me semble aussi que ça à été présent pendant un temps.
Je pense qu'on y perd trop en lisibilité.


RE: [Javascript] Utiliser variable dans le .animate({}) de jQuery ? - Maks - 08-11-2012

La discussion sur l'ajout : https://github.com/jashkenas/coffee-script/issues/786
Et le pourquoi de la suppression : https://github.com/jashkenas/coffee-script/issues/1731#issuecomment-2210542

Peut être que ça sera présent dans la version 2 mais c'est aussi une proposition de l'ES6 visiblement


RE: [Javascript] Utiliser variable dans le .animate({}) de jQuery ? - Argorate - 08-11-2012

Au final ça change rien, coffee script ne permet pas de le faire, il fait juste semblant ^^

puis a force d'ajouter des couches partout hein...


RE: [Javascript] Utiliser variable dans le .animate({}) de jQuery ? - Sephi-Chan - 08-11-2012

(08-11-2012, 10:54 PM)Argorate a écrit : Au final ça change rien, coffee script ne permet pas de le faire, il fait juste semblant ^^

Tu recherches un sucre syntaxique pour faire les choses en moins de lignes : c'est exactement ce à quoi sert CoffeeScript.


(08-11-2012, 10:54 PM)Argorate a écrit : puis a force d'ajouter des couches partout hein...

Ta phrase ne veut rien dire. Dis les choses ou ne les dis pas. CoffeeScript est une abstraction passive (tout se fait tout seul et sans impact négatif sur l'efficacité) qui apporte de la lisibilité et de la concision à Javascript. Il n'y a vraiment pas de quoi râler.