将2个对象传递给jquery.css()

时间:2013-05-07 17:07:49

标签: javascript jquery javascript-objects

在前往urff上最短代码的路上。

我有一个对象,我在那里进行特征检测。然后我将结果传递给jquery.css()命令。但我确实有一些其他的css规则,我也需要申请。我不能把它们放入物体,因为这些规则不时会有所不同。所以我现在传递两个jquery.css()命令,但我试图制作一个,只是为了性感..

var myObject  = (Modernizr.csstransforms ? {transform: 'translateX(123px)'} : {left: 123});
$("#elem").css(myObject).css({ sexyness: 0 });

虽然我尝试做这样的事情:

$("#elem").css(myObject, { sexyness: "100%" });

我错过了什么,或者这是不是很好?

4 个答案:

答案 0 :(得分:4)

您可以使用$.extend()合并这两个css属性对象

$("#elem").css($.extend({}, myObject, { sexyness: "100%" }));

答案 1 :(得分:2)

您需要“粘合”对象并使用新对象设置样式。看起来像这样:

固定

$.extend(myObject, { sexyness: "100%" });
$("#elem").css(myObject);

答案 2 :(得分:2)

$("#elem").css($.extend({}, myObject, { sexyness: "100%" }));

jQuery.extend

答案 3 :(得分:0)

错误:(误读了API jQuery 1.9允许你使用属性数组,所以你可以这样做:

var myObject  = (Modernizr.csstransforms ? 
                          ["transform: translateX(123px)"] : 
                          ["left: 123"]);
$("#elem").css(myObject.add("sexyness: 80"))

<击>

让我们作弊并使用JSON.parse,这让我们可以简单地连接字符串

var myObject  = (Modernizr.csstransforms ? 
                 'transform: "translateX(123px),"'} : 
                 'left: 123,');
$("#elem").css(JSON.parse(myObject + 'sexyness : 80'))