#jquery #google-maps
#jquery #google-карты
Вопрос:
Я пытаюсь выяснить, как удалить слово «Закрыть» в правом верхнем углу этого изображения:
Я обнаружил, что могу запустить эту команду jQuery, и она работает, но только если я запускаю команду после того, как окно уже открыто:
jQuery(".gm-ui-hover-effect").attr('title', '');
Проблема заключается в том, что если я помещаю его в прослушиватель кликов для информационного окна, похоже, он не работает:
function bindInfoWindow(marker, map, infowindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(html);
infowindow.open(map, marker);
jQuery(".gm-ui-hover-effect").attr('title', '');
});
}
Я готов скрыть его с помощью CSS / JS / чего угодно, но после двухдневных поисков я не могу найти решение для этого (и по какой-то причине мой Chrome не форматирует уменьшенный код, поэтому отслеживание оказалось очень сложным, но это другая проблема).
У кого-нибудь есть идеи о том, как это скрыть?
Комментарии:
1. Попробуйте добавить setTimeout в случае, если
open()
он асинхронный. Также предполагается, что у вас правильный класс
Ответ №1:
Используйте domready
событие в InfoWindow, чтобы запустить функцию для удаления заголовка.
Из документации:
domready
функция ()
Аргументы: Нет
Это событие запускается, когда содержимое InfoWindow, содержащее содержимое InfoWindow, прикреплено к DOM. Возможно, вы захотите отслеживать это событие, если вы создаете содержимое своего информационного окна динамически.
function bindInfoWindow(marker, map, infowindow, html) {
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(html);
infowindow.open(map, marker);
google.maps.event.addListener(infowindow, 'domready', function() {
jQuery(".gm-ui-hover-effect").attr('title', '');
});
});
}
фрагмент кода:
function initMap() {
var uluru = {
lat: -25.363,
lng: 131.044
};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: uluru
});
var contentString = '<div id="content">'
'<div id="siteNotice">'
'</div>'
'<h1 id="firstHeading" class="firstHeading">Uluru</h1>'
'<div id="bodyContent">'
'<p>some content</p>'
'</div>'
'</div>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var marker = new google.maps.Marker({
position: uluru,
map: map,
title: 'Uluru (Ayers Rock)'
});
marker.addListener('click', function() {
console.log("open infowindow");
infowindow.open(map, marker);
google.maps.event.addListener(infowindow, 'domready', function() {
console.log("remove title")
jQuery(".gm-ui-hover-effect").attr('title', '');
});
});
}
html,
body,
#map {
height: 100%;
margin: 0;
padding: 0;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="map"></div>
<!-- Replace the value of the key parameter with your own API key. -->
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyCkUOdZ5y7hMm0yrcCQoCvLwzdM6M8s5qkamp;callback=initMap"></script>