繁体   English   中英

在对象属性名称中使用变量

[英]Using variables in object property names

我有一个名为direction的变量存储: leftright

我需要根据该变量更改受影响的保证金。

现在我正在使用条件,是否可以用变量direction的输出替换“左”?

$("#map").animate({"margin-left": "+=50px"}, 500);

不是直接的,但你可以创建一个对象并在animate()使用它之前对其进行操作:

var direction = "left";
var property = {};
property[ "margin-"+direction ] = "+=50px";
$("#map").animate( property, 500);

用这个。 由于没有margin-upmargin-down ,您必须“手动”翻译它:

var dir = "left";
dir = dir == "up" ? "top" : dir == "down" ? "bottom" : dir;
var obj = {};
obj["margin-" + dir] = "+=50px";
$("#map").animate(obj, 500);

第二行是一种合法的,更短的写法:

if(dir == "up"){
    dir = "top";
} else if(dir == "down"){
   dir = "bottom";
} else {
    dir = dir;
}
eval('props = {"margin-' + direction  + '": "+=50px"}')
$("#map").animate(props, 500);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM