Информационное окно для последнего маркера Google Maps открывается независимо от того, какой из них был нажат - PullRequest
1 голос
/ 08 мая 2020

Я пытаюсь запустить api карт Google в проекте ASP. NET MVC, и я пытаюсь добавить маркеры с информацией windows на каждый маркер. К сожалению, когда я нажимаю на маркер, открывается информационное окно по последнему добавленному маркеру, независимо от того, какой маркер я щелкнул.

Вот мой код:

<script>
        var map;
        function initMap() {
            map = new google.maps.Map(document.getElementById('map'), {
                center: { lat: 39.5, lng: -98.35 },
                zoom: 3
            });
            @foreach (var item in Model) {
                 <text>
                    var marker = new google.maps.Marker({
                      map: map,
                      position: { lat: @item.Lat, lng: @item.Lng },
                      title: '@item.Name'
                    });

                    marker.info = new google.maps.InfoWindow({
                        content: `<div id="content"> <h1 id="firstHeading" class="firstHeading">Test</h1> <div id="bodyContent">Test </div> </div>`
                    });

                    marker.addListener('click', function () {
                        marker.info.open(map, marker);
                    });

                </text>
}
        }
    </script>

1 Ответ

1 голос
/ 08 мая 2020

Извините, предыдущий ответ удален. внутри l oop напрямую

важно, чтобы ваш слушатель событий также создавался в этом методе, а не внутри l oop

...