0

我有一个数组:

var markerArray = [];//global var
var markerCnt = 0;//global var
for(var x=0;x<10;x++){
    markerArray[markerCnt] = new Array(agency, address, marker, onMarkerClick);
    //agency and agency = string
    //marker = google maps marker
    //onMarkerClick = function
    markerCnt++;
}

如何调用指定的 onMarkerClick 函数?我会这样做:

markerArray[0][3]();
4

2 回答 2

1

作为替代解决方案,您还可以这样做:

var markerArray = [];
var markerCnt = 0;

for(var x=0;x<10;x++){
    markerArray[markerCnt] = {
        'agency' : agency, 
        'address' : address, 
        'marker' : marker, 
        'click' : onMarkerClick
    };
    markerCnt++;
}

//To call the click
markerArray[0].click();
于 2012-08-10T21:44:41.670 回答
0

你的问题的答案是肯定的。

无论有多少维,您都可以执行存储在数组中的任何函数。

// perfectly valid
markerArray[0][3]()

// as is this
someArray[0][1][7][2]()

除了回答您的问题之外,我建议您使用一个对象数组,这样您就不必执行数组成员。如果您在 6 个月内查看它试图弄清楚您做了什么,这将增加您的代码的可读性并为您节省几个小时。

var markerArray = [];//global var
var markerCnt = 0;//global var
for(var x=0;x<10;x++){
    markerArray[markerCnt] = {
        agency: agency
        address: address
        marker: marker
        onMarkerClick: onMarkerClick
    };
    //agency and agency = string
    //marker = google maps marker
    //onMarkerClick = function
    markerCnt++;
}

// then reference your function
markerArray[0].onMarkerClick();
于 2012-08-10T21:44:16.460 回答