Показать сообщение отдельно
  #3 (permalink)  
Старый 05.09.2019, 21:39
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от Julia1991
Есть div в который подгружается карта. По умолчанию вместо этого блока отображается другой div с другим id (в этом блоке картинка). По нажатию на эту картинку меняется id на id блока с картой. В общем должно подгрузиться содержимое блока с картой. С помощью метода load() у меня получилось сделать, но подскажите как сделать без перезагрузки блока?
Вместо того, чтобы писать загадочно, и в терминах элементов, лучше напишите, как пример должен работать с точки зрения человека. Например, есть картинка местности, при нажатии на неё должна вместо картинки появиться карта той местности... Такое можно сделать так...
<!DOCTYPE html>
<html>
<body>

	<button lat="47.5550479" lng="10.7492965" is="map-app">
		<img src="https://picsum.photos/id/1040/500/400">
	</button>
	
	<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyA1EguMI4GxbUwHxlH-CE9ZtC4KnJQzaeY">
	</script>
	<script>
		
function initMap(node) {
	var center = {
		lat: Number(node.getAttribute("lat")),
		lng: Number(node.getAttribute("lng")),
	};
	var map = new google.maps.Map(node, { zoom: 15, center });
	var marker = new google.maps.Marker({
		position: center,
		map
	});
	node.mapIsInitialized = true;
}
document.addEventListener("click", (event) => {
	const button = event.target.closest("button[is='map-app']");
	if (button && !button.mapIsInitialized) {
		initMap(button);
	}
});
		
	</script>
	<style>
	
button[is="map-app"] {
	all: unset;
	position: relative;
	width: 500px;
	max-width: 100vw;
	height: 400px;
}
		
	</style>
	
</body>
</html>
Ответить с цитированием