кнопка закрытия пользовательского окна информации - PullRequest
3 голосов
/ 23 июля 2010

У меня есть экземпляр google.maps.InfoWindow, и у него есть настраиваемая кнопка закрытия. Который запускается событием onClick. Однако, если я нажму кнопку «Закрыть», информационное окно закроется, что ожидается, но на карте появится новый маркер на месте, где должно быть информационное окно. Похоже, что onClick = "infoWindow.close ()" является placeReclameMarker (event.latLng); одновременно.

    var map;
    var infoWindow;
    function initialize() {
        var latlng = new google.maps.LatLng(47.030698, 28.850098);
        var myOptions = {
            zoom: 15,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(
            document.getElementById("map_canvas"), myOptions);

        google.maps.event.addListener(map, 'click', function (event) {
            placeReclameMarker(event.latLng);
        });

    }

    function placeReclameMarker(location) {

        var marker = new google.maps.Marker({
            position: location,
            draggable: true,
            map: map
        });
        google.maps.event.addListener(marker, 'rightclick', function () {
            infoWindow = new google.maps.InfoWindow({
                content: '<input type="button" onclick="infoWindow.close()">'
            });
            infoWindow.open(map, marker);
        });
    }

Ответы [ 2 ]

1 голос
/ 06 августа 2010

Я не уверен, что вы можете посетить переменную infoWindow во внутреннем объекте infoWindow.try:

content: '<input type="button" onclick="parent.infoWindow.close()">'

или

content: '<input type="button" onclick="parent.parent.infoWindow.close()">'

или

content: '<input type="button" onclick="alert(infoWindow)">'

Переменная infoWindow не должна быть неопределенной.

удачи

0 голосов
/ 21 августа 2013

У меня была такая же проблема.Нашел решение.Дело в том, что вы должны не только закрыть окно InfowWindow, но и убить маркер.

Попробуйте;

var map;
var marker;
var infoWindow;
function whateverFunction() {
    // some code here to create the marker and the infoWindow
    infoWindow.open(map, marker);
    infoWindow.setContent('<input type=button name=Close onClick="marker.setMap(null);">');
}

Сработало идеально для меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...