Javascript 动态变量名语法
另一个让我陷入困境的新手问题 我有三个变量Javascript 动态变量名语法,javascript,jquery,Javascript,Jquery,另一个让我陷入困境的新手问题 我有三个变量 var state1 var state2 var state3 我需要在.click事件上访问其中一个,具体取决于单击对象的属性 如何访问正确的变量?基本上,我需要通过将“state”和正确的数字加在一起来定义变量名 我会很快用一些代码更新这篇文章,以备需要 var backstate1; var backstate2; var backstate3; var currentFrame; function hotspotHover(){ var
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();
});
};
将状态添加为数组:
var states = [ 'state1', 'state2'];
var stateNumber = 0;
var state = states[stateNumber];
使用阵列可以解决您的问题:
var states = [null, null, null];
然后访问它们将是:(假设currentStateId
是当前状态号)
和设置:
states[currentStateId] = "State"; //Set State
它们在哪里申报?尝试访问它们的代码是什么?我会使用一个数组:
var state=[state1,state2,state3]
并通过state[number]
访问它们。如果重新声明,这可能是一个正确的答案。对此表示抱歉。试图重述答案。我似乎仍然不明白的是,我该如何为state1或state2声明一个值?我基本上是这样做的:如果单击的对象的statelevel==1,那么将state1的值修改为currentFrame代码>
states[currentStateId] = "State"; //Set State