2009-09-16 5 views
2

Est-il possible de prendre quelque chose comme:Variables jQuery clés à Key: Paire CSS attributs

$("div").css({ 
    "top": var1, 
    "height": var2, 
    etc. 
}); 

et la transformer en:

var dir = "top"; 
var length = "height"; 

$("div").css({ 
    dir: var1, 
    length: var2, 
    etc. 
}); 

Jusqu'à présent, la seule façon dont je peux l'obtenir pour travailler est en déclarant à plusieurs reprises les lignes séparément, tels que:

$("div").css(dir, var1); 
$("div").css(length, var2); 
$("div").css(etc.); 

Quelqu'un a-t-il d'autres idées? La raison pour laquelle je dérange avec ceci est parce que je voudrais être capable de renverser mon module par 90 degrés (aka, l'ai aller de gauche à droite ou de haut en bas), et pour ce faire je devrais avoir un universel variable pour la direction.

Merci d'avance!

Répondre

9

{ "top": var1, "height": var2 } crée un objet JavaScript qui a deux propriétés définies par l'utilisateur. Malheureusement, JavaScript ne vous permet pas d'utiliser des variables comme noms de propriétés lors de la définition d'un objet de cette manière.

Vous devriez être en mesure de le faire comme ceci:

var o = {}; 
o[dir] = var1; 
o[length] = var2; 
$("div").css(o); 
+0

C'est une solution très intéressante. Je vais devoir y réfléchir davantage, mais cela répond définitivement à la question. Merci! – Matrym

+0

Ceci est une solution exceptionnelle, merci beaucoup @Grant! –

1

Essayez cette ...

var myCss = {}; 
myCss[dir] = var1; 
$("div").css(myCss); 
Questions connexes