16560


Google Maps JavaScript API でどのマーカーがクリックされたかに応じて処理を変更したいのですが，マーカーを識別することができません．

ソースは以下のように書いています．locations は JSON データで，location['id']
には固有のIDと緯度経度が含まれていることは確認しました．markers はグローバル変数です．

[code]

    for (var i = 0; i < locations.length; i++) {
      var location = locations[i];
      if (!markers[location['id']]) {
        var marker = new google.maps.Marker({
          position: {lat: location['lat'], lng: location['lng']},
          map: map,
          title: '"' + location['name'] + '"'
        });
        markers[location['id']] = marker;
        google.maps.event.addListener(marker, 'click', function(e) {
          console.log(location['id']);
        });
      }
    }
    
[/code]


CC BY-SA 3.0
2015-09-13T06:47:35.737
16558
2015-09-13T07:53:57.370
2015-09-13T07:29:59.437
11142
11142
question
javascript google-maps
Google Maps JavaScript API でマーカーを識別できない


自己解決しました．

[code]

    var location = locations[i]
    
[/code]

上記の箇所で参照になっていて，表示している location['id']
も書き換わってしまっているということでした．for文内を別の関数にして実行したところうまくいきました．


CC BY-SA 3.0
2015-09-13T07:53:57.370
16560
2015-09-13T07:53:57.370
11142
16558
answer