-1

As continuation to this question, i trying to add the respective json object name to infowindow content as,

 var infowindow = new google.maps.InfoWindow({
  content:i
  });

Which is given in this fiddle but it displays only the name of last object. I also tried with return function as

google.maps.event.addListener(poly, 'click', (function(event, (poly, i)) {
    return function() {
  infowindow.open(map);
  infowindow.setPosition(event.latLng);
    }
  })(poly, i)); 

but no use (fiddle). How can I achieve it?

Community
  • 1
  • 1
mpsbhat
  • 2,733
  • 12
  • 49
  • 105
  • possible duplicate of [Multiple polylines and infowindows with Google Maps V3](http://stackoverflow.com/questions/4068110/multiple-polylines-and-infowindows-with-google-maps-v3) – geocodezip Jun 26 '15 at 16:50
  • Not working the solution in above link. http://jsfiddle.net/mpsbhat/whop1j4e/18/ – mpsbhat Jun 26 '15 at 17:02
  • Did you see the javascript error in [your fiddle](http://jsfiddle.net/mpsbhat/whop1j4e/17/) `Uncaught SyntaxError: Unexpected token (` – geocodezip Jun 26 '15 at 17:05
  • Or the javascript error in [the fiddle in your comment](http://jsfiddle.net/mpsbhat/whop1j4e/18/): `Uncaught ReferenceError: infowindow is not defined` – geocodezip Jun 26 '15 at 17:06
  • No way.. http://jsfiddle.net/mpsbhat/whop1j4e/19/ – mpsbhat Jun 26 '15 at 17:09
  • Javascript is case sensitive, infoWindow is not the same as infowindow... – geocodezip Jun 26 '15 at 17:11

1 Answers1

2

You said "But all brackets are correctly closed.". This is not correct (you have an extra set of parentheses in the function definition):

google.maps.event.addListener(poly, 'click', (function(event, (poly, i)) {
    return function() {
      infowindow.open(map);
      infowindow.setPosition(event.latLng);
    }
  })(poly, i)); 

The event argument belongs to the returned function, and you only need closure on the polygon (poly) and the loop index (i):

google.maps.event.addListener(poly, 'click', (function (poly, i) {
    return function (event) {
        infowindow.setContent(""+i);
        infowindow.setPosition(event.latLng);
        infowindow.open(map);
    };
})(poly, i));

updated fiddle

geocodezip
  • 158,664
  • 13
  • 220
  • 245