2010-11-02 78 views
3

我需要選擇一個屬性來設置動畫,然後執行動畫。使用字符串變量作爲對象字段

的代碼應該像如下:

var prop = "background-color"; 
switch(val) 
{ 
    case 1: prop = "color"; 
    case 2: prop = "border-color"; 
    // ... 
} 
item.animate({prop: "#00FF00"}, 1000); 

JavaScript的抱怨使用 「託」 變量。

當我剛剛說

item.animate({"color": "#00FF00"}, 1000); 

一切都很好。

我認爲,一個常數是預期的對象屬性聲明。

如何在運行時確定它?

回答

5

這些相當於:

// prop is a literal string here, 
// not a variable 
{prop: "#00FF00"} 

{"prop": "#00FF00"} 

你可能需要做這樣的事情:

var obj = {}; 
obj[prop]="#0000ff"; 
item.animate(obj, 1000); 
2

是的,你說得對,JavaScript期望一個標識符作爲對象文本中的屬性名稱。您必須創建一個對象並使用方括號表示來指定屬性。

var opts = {}; 
opts[prop] = "#00FF00"; 
item.animate(opts, 1000);