2012-08-02 15 views
0

另一個新手問題,我堅持不住。動態變量名的語法

我有三個變量

var state1 
var state2 
var state3 

我需要訪問其中的一個對視點擊對象的屬性。單擊事件。

如何訪問正確的變量?基本上我需要通過添加「狀態」和正確的數字在一起的變量名稱。

我會盡快更新這篇文章,並附上一些代碼,以備需要時使用。

var backstate1; 
var backstate2; 
var backstate3; 
var currentFrame; 

function hotspotHover(){ 
var currentElement = this; 
var daName =this.name; 
$("#hotspot" +daName).hover(

    function() { 
    $("img.changeOutline").prop("src", currentElement.outlinesArray[currentFrame]); 
    $("#outlines").show(); 
    }, 
    function() { 
    $("#outlines").hide(); 
    } 
).click(function() { 
    var backstateLevelNumber = currentElement.backStateLevel; //not working 
    window['backstate'+ backstateLevelNumber]=currentFrame; //trying to set backstate+number to current frame variable 
    hoverClick(currentElement.defaultFrame); 
    checkReverse(); 
    checkSeqLoop(); 
}); 

}; 
+0

他們在哪裏申報?試圖訪問它們的代碼是什麼? – Joseph 2012-08-02 03:05:22

+0

爲什麼不使用數組呢? – zerkms 2012-08-02 03:05:37

+2

我會爲此使用一個數組:'var state = [state1,state2,state3]'並通過'state [number]' – mariusnn 2012-08-02 03:06:33

回答

2

使用數組將解決你的問題:

var states = [null, null, null]; 

訪問它們將被:(假設currentStateId爲當前狀態編號)

var currentState = state[currentStateId] //Access state 

和設定:

states[currentStateId] = "State"; //Set State 
0

添加狀態爲數組:

var states = [ 'state1', 'state2']; 
var stateNumber = 0; 
var state = states[stateNumber]; 
+0

訪問它們,這應該是一個註釋 – Joseph 2012-08-02 03:05:43

+1

不是答案... – zerkms 2012-08-02 03:05:44

+1

它可能是一個正確答案如果重述。 – 2012-08-02 03:07:17