我需要选择一个属性来制作动画,然后做动画。
代码应如下所示:
var prop = "background-color";
switch( val )
{
case 1: prop = "color";
case 2: prop = "border-color";
// ...
}
item.animate( {prop: "#00FF00"}, 1000 );
JavaScript抱怨使用“prop”变量。
当我说的时候
item.animate( {"color": "#00FF00"}, 1000 );
一切都很好。
我认为,期望一个常量作为对象属性声明。
我如何在运行时确定它?
答案 0 :(得分:5)
这些是等价的:
// prop is a literal string here,
// not a variable
{prop: "#00FF00"}
和
{"prop": "#00FF00"}
你可能需要这样做:
var obj = {};
obj[prop]="#0000ff";
item.animate( obj, 1000 );
答案 1 :(得分:2)
是的,你是对的,JavaScript期望一个标识符作为对象文字中的属性名称。您必须创建一个对象并使用方括号表示法分配属性。
var opts = {};
opts[prop] = "#00FF00";
item.animate(opts, 1000);