リスナーをクリックしなくても起動時に起動するように見えますが、マーカとインフォボックスをまとめてリンクしたいと思っています。 (ボックスを閉じた後で)マーカをクリックすると、何も起こりません。Google Maps API V3、Listenerが異常に動作しています
//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の(){// スペース予約 するvar site_arr =新しいアレイ(); var point_arr = new Array(); var pasta_arr = new Array(); //すべての情報を読み込む point_arr = [新しいgoogle.maps.LatLng(38.629343、-9.191592)、 新しい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