2015-09-02 105 views
1

當我像下面這樣做,它不工作!你可以幫我嗎爲什麼這樣?在css方法中傳遞動態屬性

var propertyName = 'left'; 
var propertyVal = $("body").width(); 

$('nav').css({ propertyName: propertyVal , 'position': 'absolute'}); 
+1

請添加更多的信息和你的研究,假設,代碼。告訴我們你做了什麼。我們在這裏幫助您學習,而不是免費的軟件支持。 –

回答

1

相反,你可以做到這一點的方法:

$('nav').css(propertyName, propertyVal) 
     .css('position', 'absolute'); 

您也可以使用array符號添加:

cssProperties[propertyName] = propertyVal 
+0

嗨@Praveen你的方式是完全正確的..但如果有很多動態屬性,想要在CSS方法下添加,那麼這種解決方案將是繁瑣的寫一遍又一遍.. –

+0

當然......':)'有很多方法。 –

2

的問題是,因爲你不能使用一個變量作爲使用您擁有的語法的對象中的屬性名稱。相反,您需要使用括號表示法來定義該屬性及其值。試試這個:

var cssSettings = { 'position': 'absolute' }; 
cssSettings[dynCssProperty] = widthMenu; 
$('nav').css(cssSettings); 

或者,您也可以兩次調用css()方法,單獨設置每個屬性:

$('.nav').css('postion', 'absolute').css(dynCssProperty, widthMenu);