你好 我在循環一個JSON對象併爲每個項目創建一個新的地圖標記。創建標記後,我將其推送到一個數組(變量標記)以供將來操作。問題是,當我嘗試訪問數組項時(例如:console.log(markers [3])),我得到一個「未定義」的值。JavaScript數組項==谷歌地圖功能中的「未定義」
相關代碼如下:
var map;
var markers = [];
var activeFilters = [];
function initializeMap() {
var myLatlng = new google.maps.LatLng(51.506873, -0.125141);
var myOptions = {
zoom: 14,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
disableDefaultUI: true
}
map = new google.maps.Map(document.getElementById("location_map"), myOptions);
$.getJSON('../js/hotspots.json', function(data) {
var hotspots = data.scenes[0].hotspots;
$.each(hotspots, function(i) {
var lat = hotspots[i].latitude;
var lon = hotspots[i].longitude;
var point = new google.maps.LatLng(lat,lon);
var cat = hotspots[i].hotspottype;
var weburl = hotspots[i].weburl;
var marker = addMarker(point,cat,weburl);
});
});
}
function addMarker(point, cat, weburl) {
var markerUrl = weburl;
var marker = new google.maps.Marker({
position: point,
map: map
});
marker.category = cat;
markers.push(marker);
};
initializeMap();
console.log(markers[3]);
任何幫助將不勝感激。
好像你試圖訪問標記[3]之前它被推入到全局數組。在執行.getJSON回調函數之前。當然是 – kjy112 2011-04-18 13:18:09
kjy112!我一直在盯着這一段時間,但從未注意到這一切都需要在回調中發生。謝謝! – fishmitten 2011-04-18 13:21:31
是那個問題? – kjy112 2011-04-18 13:43:21