0

三項演算子を使用して 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は可能性を見出しました。しかし、まだ最終的なものではありません!

OK、最良の答えは Explosion Pills Explosion Pillsが言ったように:

var horizontal = false;

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

フィドルとして生きる。

4

2 に答える 2

4

リテラル表記でオブジェクトを宣言する場合、変数を評価することはできません。

代わりに、次のように直接与えることができます。

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

フィドル: http: //jsfiddle.net/YXyng/

于 2012-10-12T06:21:20.407 に答える