ループ内で実行されるaddListener関数に変数を取得しようとしていますが、ループの最後のインスタンス変数。ループ内で実行されるaddListener関数に変数を取得しようとしています
for(var i=0; i < data.length; i++) {
points[i] = new google.maps.LatLng(parseFloat(data[i].lat), parseFloat(data[i].lng));
gmarkers[i] = new google.maps.Marker({
map: map,
position: points[i],
title: locationdata[i].title
});
gmarkers[i].setMap(map);
bubbles[i] = new google.maps.InfoWindow({
content: locationdata[i].summary
});
google.maps.event.addListener(gmarkers[i], 'click', function() {
alert(i);
bubbles[i].open(map, gmarkers[i]);
});
}
だから、問題は底部付近に警告(i)が常に理にかなってdata.lengthの最後の項目ですが、私はこれを修正する方法がわからないということです。
ロケットはこの質問に答えて正解でしたが、構文が少しオフだったので、実際の構文は、後に、この出くわす誰のために何であったかここに掲示:
google.maps.event.addListener(gmarkers[i], 'click', (function(i) {
return function() {
alert(i);
bubbles[i].open(map, gmarkers[i]);
}})
(i));
答えをありがとうが、次のエラーがスローされます。前の文 –
@ hsmoore.com:おっと、誤字。今すぐ試してください: - P –