Мне нужна помощь с JavaScript и API Карт Google.
У меня есть карта Google Maps на моем веб-сайте, на которой отображаются маркеры, которые, в свою очередь, показывают пользовательский InfoBox
при нажатии.
При нажатии на маркер для этого создается новый объект InfoBox
:
google.maps.event.addListener(marker, 'click', function() {
infoBox = new InfoBox({id: id, content: description, latlng: marker.getPosition(), map: map});
});
Когда посетитель нажимает два маркера подряд, он сталкивается с двумя InfoBox
с.Я запускаю две строки кода, которые скрывают InfoBox
s, когда пользователи щелкают мышью на карте или когда они щелкают крестиком в верхнем правом углу:
google.maps.event.addDomListener(closeImg, 'click', removeInfoBox(this));
google.maps.event.addDomListener(map, 'click', removeInfoBox(this));
Я хотел бы, чтобыкогда пользователь нажимает на маркер, все предыдущие маркеры будут скрыты (поэтому после каждого нажатия на маркер будет скрываться только один предыдущий InfoBox
).
Я изо всех сил пытаюсь получить этосделанный.Если я создаю DomListener
на всех маркерах с событием 'click', я никогда не получаю всплывающее окно InfoBox
.Если я поставлю removeInfoBox(this);
перед созданием нового объекта InfoBox
, мне также никогда не покажут InfoBox
.
Где и как будет правильным способом предотвратить появление более одного InfoBox