I have been working on this for a while now. I have looked at multiple stack overflow posts on the topic and several tutorials, but I have not been able to get infoWindow.close() to work.
I have even tried using jQuery to click $('#googleMap > div > div > div:nth-child(1) > div:nth-child(4) > div:nth-child(4) > div:nth-child(1) > div:nth-child(3)').click(); which actually seems to work in the browser console, but not when running the click listener.
Any suggestions or directions are much appreciated.
d3.csv('/data/locs.csv', function(locs){ var obj = []; for(i=0;i<locs.length;i++) { var country = locs[i].country; var location = locs[i].location; var lat = locs[i].lat; var long = locs[i].long; var description = locs[i].description; obj.push({ con: country, location: location, lat: lat, lng: long, description: description }); } console.log(obj); initMap(obj) }); function initMap(obj, error) { if (error){console.log("Error: "+error)} var openInfoWindow = null; var mapProp = { center: {lat: 39.8283, lng: -98.5795}, zoom: 2 }; var map = new google.maps.Map(document.getElementById("googleMap"), mapProp); var pointLoc = []; var labels = []; var descrip = []; var locale = []; for(i=0;i<obj.length;i++) { pointLoc.push({lat: obj[i].lat, lng: obj[i].lng}); labels.push(obj[i].con); descrip.push(obj[i].description); locale.push(obj[i].location); } map.data.loadGeoJson(); for (var i = 0; i < pointLoc.length; i++) { var coords = pointLoc[i]; var latLng = new google.maps.LatLng(coords.lat,coords.lng); var marker = new google.maps.Marker({ position: latLng, map: map }); var contentStr = '<div id="popcontent">'+ '<div id="siteNotice">'+ '</div>'+ '<h1 id="firstHeading" class="firstHeading">'+descrip[i]+'</h1>'+ '<p>'+locale[i]+', '+labels[i]+'</p>' + '</div>'; var infoWindow = new google.maps.InfoWindow({ maxWidth: 300 }); google.maps.event.addListener(marker,'click', (function(marker,contentStr,infowindow){ infowindow.close(); return function() { infowindow.setContent(contentStr); infowindow.open(map, marker); }; })(marker,contentStr,infoWindow)); } }
InfoWindowopen at a time? Please provide a minimal reproducible example that demonstrates your issue.