我的脚本中有一个全局数组,它从特定的函数调用中获取其值。参见示例:
var myglobalArray = [];
.
.
.
function createMarkersToFillArray(property1, property2) {
var marker= new google.maps.Marker({ position: latlng, map: map });
marker.property1 = property1;
marker.property2 = property2;
myGlobalArray.push(marker);
return marker;
}
function getStuffFromXMl() {
downloadUrl("myXMLFile.xml", function (data) {
var xmlItems = data.documentElement.getElementsByTagName("row");
for (var i = 0; i < xmlItems.length; i++) {
var property1= xmlItems[i].getAttribute("Property");
var property2 = xmlItems[i].getAttribute("Property2");
var marker = createMarkersToFillArray(property1, property2);
}
});
}
上面的代码完全符合我的预期。当我尝试访问myGlobalArray
函数中的initialize()
元素时,会出现此问题。
function initialize() {
getStuffFromXML(); //this should populate myGlobalArray with the markers, but it doesn't
}
它表示即使将标记添加到数组中,该数组也是空的。当我尝试在myGlobalArray
函数中访问它们时,有人可以解释为什么initialize()
的元素会消失吗?