2016-04-15 14 views
0

Ich habe Probleme Sie folgendermaßen vorgehen:Dynamische jQuery-CSS-Eigenschaft?

var direction = "left"; 
$('#elem').css({"margin-"+direction: "50px"}); 

Ist es dynamische Eigenschaften wie diese haben nicht möglich?

Danke

+0

Ja ... ist es möglich ... Demo: https://jsfiddle.net/cgtnd9wL/ –

Antwort

0

.css(propertyname, value) hat eine weitere Variante, die den Namen der Eigenschaft und den Wert als 2 verschiedene Argumente

var direction = "left"; 
$('#elem').css("margin-"+direction, "50px"); 

Wenn Sie dann Objekt verwenden möchten Format nehmen können, können Sie die Klammer-Notation verwenden können, um zuweisen dynamische Eigenschaften

var css = {}; 
css["margin-"+direction] = "50px"; 
$('#elem').css(css); 
+0

Gibt es sowieso, es mit den Klammern {} zu tun, damit ich mehrere Eigenschaften in der css() verwenden kann? weil ich das tun muss: .css ({opacity: 0, display: "block", "margin-" + richtung: "50px"}}). promise(). done (function() { – RON2015

+0

@RON du kannst benutze diese Syntax: - css ({"propertyname": "value", "propertyname": "value", ...}); –

+1

@RON2015 siehe update ... auch hier nutzt die Verwendung von Versprechen nichts 'css' führt keine asynchrone Operation durch –

0

entfernen Curlybraces ({,}) und Doppelpunkt (:) in Ihrem jQuery-Code, und versuchen Sie den Code unten

var direction = "left"; 
$('#elem').css("margin-"+direction, "50px"); 
0

Sie können ein JAVASCRIPT-Objekt erstellen und dieses Objekt dann in CSS anwenden.

Beispielcode:

var style = {property1:"value1", property2:"value2", property3:"value3"}; 

Dann Sie unter Syntax verwenden können oben Eigenschaft anzuwenden.

Mit dem obigen Weg können Sie dynamische Eigenschaften hinzufügen, die mit jQuery angewendet werden.

Hoffe, das hilft.