GoogleマップのAPIを使用しています。マーカーの配列と情報ウィンドウの配列があり、マーカーがクリックされたときにそれぞれの情報ウィンドウを表示しようとしています。JavaScriptクロージャを尊重するように、イベントリスナーを追加する方法を理解するのに苦労しています。
(不正解)コード。これらはすべてinitialize()
、ページの読み込み時に呼び出されるに含まれています。
var markers = []
var infoWindows = []
[define all markers and info windows here, long so cut]
for (var i = 0; i < markers.length; i++)
{
google.maps.event.addListener(markers[i], 'click', function() {
infoWindows[i].open(mymap, markers[i]);
});
}
ここに来る前に、すべてのオブジェクトが正しく初期化されていることを確認しました。
私の問題についての私の理解は、クリックイベントが発生するまでに、infoWindows[i]
アクセスできなくなるということです。配列のi番目の位置のがi番目の位置のマーカーに対応するeventListener
場合に、私が思うように機能するように、これについて何ができますか?infoWindow