使用三元运算符更改CSS / animate propertyName

时间:2012-10-12 06:17:57

标签: jquery css properties jquery-animate ternary-operator

我们如何使用三元运算符更改propertyName / s?

例如:

var horizontal = false,
    propertyName = horizontal ? 'left' : 'top';

$(".elem").css({
    propertyName: value
});

我找到了一些答案,但它们不适合我的情况。

https://stackoverflow.com/a/5973518/1250044

https://stackoverflow.com/a/12228404/1250044


Praveen Kumar找到了可能性。但仍然没有最终决定!

好吧,我认为最好的答案是,爆炸药Explosion Pills说:

var horizontal = false;

$(".elem").css(horizontal ? {
    left: 10
} : {
    top: 10
});

直播为Fiddle

2 个答案:

答案 0 :(得分:4)

在以文字符号声明对象时,无法评估变量。

相反,你可以这样直接给它:

elem.css((horizontal ? 'left' : 'top'), value);

小提琴:http://jsfiddle.net/YXyng/

答案 1 :(得分:1)

您不能直接将变量值作为objectproperty的标识符移交,但您可以执行以下操作:

var value = "15px";
var horizontal = true;
var propertyName = horizontal ? 'left' : 'top';
var parameters = {};
parameters[propertyName] = value;

elem.css(parameters);

this fiddle中查看。