我已經創建了一堆標記和信息框,我想通過一個監聽器連接在一起,儘管監聽器似乎在開始時沒有任何點擊而觸發,並且如果我嘗試啓動聽衆點擊標記(在關閉盒子後)什麼都沒有發生。谷歌地圖API V3,聽衆行爲奇怪
//Load Markers
function LoadData() {
//Space Reservation
var site_arr = new Array();
var point_arr = new Array();
var pasta_arr = new Array();
//Load All Information
point_arr = [new google.maps.LatLng(38.629343,-9.191592),
new google.maps.LatLng(38.649187,-9.189205)];
site_arr = ["AAA","BBB"];
pasta_arr = [1,2];
//Create Markers and Set InfoBoxes
for(var i = 0 ; i < site_arr.length ; i++){
marker_arr[i] = new google.maps.Marker({
position: point_arr[i]
,map: map
,title: site_arr[i]
});
window_arr[i] = new InfoBox({
content: site_arr[i]
});
google.maps.event.addListener(marker_arr[i], 'click', function(i){
window_arr[i].open(map,marker_arr[i]);
}(i));
}
return 0;
}
任何人都知道發生了什麼?
解決了這個問題,我只是發佈它,因爲它可能對別人有用... 謝謝大家!
//加載標記 功能LoadData(){// 空間預留 變種site_arr =新的Array(); var point_arr = new Array(); var pasta_arr = new Array(); //加載所有信息 point_arr = [new google.maps.LatLng(38.629343,-9.191592), new google.maps.LatLng(38.649187,-9.189205)];
site_arr = ["AAA",
"BBB"];
pasta_arr = [1,2];
//Create Markers and Set InfoBoxes
for(i = 0 ; i < site_arr.length ; i++){
marker_arr[i] = new google.maps.Marker({
position: point_arr[i]
,map: map
,title: site_arr[i]
,icon: "http://labs.google.com/ridefinder/images/mm_20_red.png"
});
marker_arr[i]._info = new InfoBox({
content: pasta_arr[i];
});
attachListener(marker_arr[i]);
}
return 0;
}
功能attachListener(標記){ google.maps.event.addListener(標記, '點擊',函數(){ marker._info.open(地圖,標記物); }); return 0; }
我現在做明白爲什麼聽者在其自身的射擊,但還是你的建議不會工作,現在無論是顯示與信息被點擊的信息框標記最後一個標記,並在最後一個標記位置! – user838681
我的第一個回答是一個建議。我現在改進了它,使它完全正常工作。 – Jiri