小编Ste*_*hen的帖子

Javascript Array addEventListener

带状态形状按钮的交互式地图,每个按钮都有状态缩写作为id,当点击按钮/状态时,我想激活函数"stateSelect"并发送状态缩写,以便我知道按下了什么.以下为什么不工作?

    var stateList = new Array("AK","AL","AR","AS","AZ","CA","CO","CT","DC","DE","FL","GA","GU","HI","IA","ID",
    "IL","IN","KS","KY","LA","MA","MD","ME","MH","MI","MN","MO","MS","MT","NC","ND","NE","NH","NJ","NM","NV","NY",
    "OH","OK","OR","PA","PR","PW","RI","SC","SD","TN","TX","UT","VA","VI","VT","WA","WI","WV","WY");

    for (var i = 0; i < stateList.length; i++) {
        document.getElementById(stateList[i]).addEventListener('mousedown', function() {stateSelect(stateList[i])}, false);
    }
Run Code Online (Sandbox Code Playgroud)

我显然想避免50行代码,但我不确定为什么这个简单的循环不起作用.

javascript arrays loops for-loop addeventlistener

3
推荐指数
1
解决办法
7404
查看次数

在函数中动态调用数组

我有一个美国地图,所有50个州都是可点击的按钮,当用户点击我要显示有关该状态的信息的状态时,动态调用该状态的数组.以下是我自己的弱尝试,显然不起作用.

var stateList = new Array("AK","AL","AR","AZ","CA","CO","CT","DC","DC2","DE","FL","GA","GU","HI","IA","ID",
        "IL","IN","KS","KY","LA","MA","MD","ME","MH","MI","MN","MO","MS","MT","NC","ND","NE","NH","NJ","NM","NV","NY",
        "OH","OK","OR","PA","PR","RI","SC","SD","TN","TX","UT","VA","VT","WA","WI","WV","WY");

function listenerForI( i ) {
    document.getElementById(stateList[i])
    .addEventListener('mousedown', function() {
        stateSelect(stateList[i]);
    }, false);
}

for (var i = 0; i < stateList.length; i++) {
   listenerForI( i );
}

var HIdat = new Array(20,28,50,2) //one array for all 50 states COdat, AKdat, etc.

function stateSelect(state){
    var display_data1 = state + "dat[0]";
    alert(display_data1);
}
Run Code Online (Sandbox Code Playgroud)

我应该使用eval()吗?我听说过你可以用全局"窗口[]"做些什么,但我不明白这是怎么回事.

javascript arrays dynamic

3
推荐指数
1
解决办法
867
查看次数

标签 统计

arrays ×2

javascript ×2

addeventlistener ×1

dynamic ×1

for-loop ×1

loops ×1