动态变量名称语法

时间:2012-08-02 03:03:15

标签: javascript jquery

另一个让我陷入困境的新手问题。

我有三个变量

var state1
var state2
var state3

我需要在.click事件中访问其中一个,具体取决于所点击对象的属性。

如何访问正确的变量?基本上我需要通过添加“state”和正确的数字来获取变量名。

如果需要,我会尽快用一些代码更新这篇文章。

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();
});

};

2 个答案:

答案 0 :(得分:2)

使用数组可以解决您的问题:

var states = [null, null, null];

然后访问它们:(假设currentStateId是当前的州号)

var currentState = state[currentStateId] //Access state

并设置:

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

答案 1 :(得分:0)

将状态添加为数组:

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