0

在我去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

4 回答 4

4

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

$("#elem").css($.extend({}, myObject, { sexyness: "100%" }));
于 2013-05-07T17:11:43.000 回答
2

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

固定的

$.extend(myObject, { sexyness: "100%" });
$("#elem").css(myObject);
于 2013-05-07T17:11:42.457 回答
2
$("#elem").css($.extend({}, myObject, { sexyness: "100%" }));

jQuery.扩展

于 2013-05-07T17:12:16.650 回答
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'))
于 2013-05-07T17:18:38.167 回答