javascript - Multiple "InfoWindow" for array of "markers" on Google Maps? - Stack Overflow

Using Google Maps API to add an infoWindow to each marker. Markers e from an array.Although, infoWindow

Using Google Maps API to add an infoWindow to each marker. Markers e from an array.

Although, infoWindow only shows up for the first marker, not the others. Why? Thanks.

function set_markers(array) {
    var mapOptions = {
        zoom: 13
    }
    for (var i = 0; i < array.length; i++) {
        var single_location = array[i];
        var myLatLng = new google.maps.LatLng(single_location[1], single_location[2]);
        var marker = new google.maps.Marker({
            position: myLatLng,
            map: map,
            title: single_location[0]
        });
        var infowindow = new google.maps.InfoWindow({
            content: ""
        });
    }

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.setContent('<h3>'+this.title+'</h3>');
        infowindow.open(map,this);
    });
}

Using Google Maps API to add an infoWindow to each marker. Markers e from an array.

Although, infoWindow only shows up for the first marker, not the others. Why? Thanks.

function set_markers(array) {
    var mapOptions = {
        zoom: 13
    }
    for (var i = 0; i < array.length; i++) {
        var single_location = array[i];
        var myLatLng = new google.maps.LatLng(single_location[1], single_location[2]);
        var marker = new google.maps.Marker({
            position: myLatLng,
            map: map,
            title: single_location[0]
        });
        var infowindow = new google.maps.InfoWindow({
            content: ""
        });
    }

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.setContent('<h3>'+this.title+'</h3>');
        infowindow.open(map,this);
    });
}
Share Improve this question asked Jan 21, 2015 at 14:40 trstrs 8632 gold badges17 silver badges36 bronze badges 3
  • Are you showing the actual code here? Looks like infowindow is undefined in your call to addListener - or is it a global not shown? – Stephen O'Connor Commented Jan 21, 2015 at 14:59
  • @SteveO'Connor "var infowindow" is defined inside the "for" loop. Is that what you're looking for? – trs Commented Jan 21, 2015 at 15:17
  • @murid you're creating your markers and infowindows within a loop. But then you only have a single event listener on your markers, i.e. only on the very last one. Move the event listener inside the loop – duncan Commented Jan 21, 2015 at 15:42
Add a ment  | 

1 Answer 1

Reset to default 7
var infowindow = new google.maps.InfoWindow();

function set_markers(array) {

    var mapOptions = {
        zoom: 13
    };

    for (var i = 0; i < array.length; i++) {

        var single_location = array[i];
        var myLatLng = new google.maps.LatLng(single_location[1], single_location[2]);
        var marker = new google.maps.Marker({
            position: myLatLng,
            map: map,
            title: single_location[0]
        });

        google.maps.event.addListener(marker, 'click', function () {
            infowindow.setContent('<h3>' + this.title + '</h3>');
            infowindow.open(map, this);
        });
    }
}

This is untested since you didn't post a MCVE.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744265216a4565834.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信