Я пытаюсь сделать кликабельный маркер на карте с помощью Google Maps Javascript API.Когда я нажимаю на маркер, ничего не происходит.Однако, когда я устанавливаю событие щелчка на карту вместо маркера, я могу щелкнуть где угодно, и консоль выдаст сообщение «Щелчок», и у маркера появится всплывающее окно с информацией.И маркер, и карта объявлены в одной и той же области видимости, так что почему один работает, а другой нет, я не могу понять.Вот мой код прямо сейчас:
window.onload = function() {
var marker = new google.maps.Marker({ animation: google.maps.Animation.DROP });
var infoWindow = new google.maps.InfoWindow();
var pos;
// The location of Uluru
var uluru = { lat: 43.221009, lng: -79.865291 };
// The map, centered at Uluru
var map = new google.maps.Map(
document.getElementById('map'), { zoom: 12, center: uluru });
// The marker, positioned at Uluru
// Try HTML5 geolocation.
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
marker = new google.maps.Marker({ position: pos, map: map });
map.setCenter(pos);
}, function () {
handleLocationError(true, infoWindow, map.getCenter());
marker = new google.maps.Marker({ position: uluru, map: map });
});
}
else {
marker = new google.maps.Marker({ position: uluru, map: map });
// Browser doesn't support Geolocation
handleLocationError(false, infoWindow, map.getCenter());
}
marker.addListener('click', function (){
showInfoWindow();
});
function showInfoWindow() {
console.log("Click");
infoWindow.setPosition(pos);
infoWindow.setContent('Your Location');
infoWindow.open(map);
}
function handleLocationError(browserHasGeolocation, infoWindow, pos) {
infoWindow.setPosition(pos);
infoWindow.setContent(browserHasGeolocation ?
'Error: The Geolocation service failed.' :
'Error: Your browser doesn\'t support geolocation.');
infoWindow.open(map);
}
};
Я также пытался сделать слушатель следующим образом:
google.maps.event.addDomListener(marker, 'click', function (){
showInfoWindow();
});