私はいくつかのテストを行っており、この奇妙な状況に遭遇しました: 最初のケース (ループ内の InfoWindows のようなオブジェクトの割り当て) は期待どおりに機能しませんが、割り当てを 1 つずつ作成すると機能します。
予想される動作は、マウスがマーカーの上にあるときに InfoWindow が開くことです。多くのウィンドウを同時に開いておく必要があります。
表面的には、違いはわかりません。どうしたの?各ケースに関連するコードと完全な JSFiddle を示しています。
JSFiddleが機能しない
iwArray = [];
for (var i = 0; i < 3; i++) {
iwArray[i] = new google.maps.InfoWindow({content: "w "});
google.maps.event.addListener(marker[i], 'mouseover', function(e) {
iwArray[i].open(map, this);
});
}
動作しますが、醜い です JSFiddle
iwArray = [];
iwArray[0] = new google.maps.InfoWindow({content: "w 0"});
google.maps.event.addListener(marker[0], 'mouseover', function(e) {
iwArray[0].open(map, this);
});
iwArray[1] = new google.maps.InfoWindow({content: "w 1"});
google.maps.event.addListener(marker[1], 'mouseover', function(e) {
iwArray[1].open(map, marker[1]);
});
iwArray[2] = new google.maps.InfoWindow({content: "w 2"});
google.maps.event.addListener(marker[2], 'mouseover', function(e) {
iwArray[2].open(map, marker[2]);
});