Задать вопрос

Почему не происходит инициализация google maps после перезагрузки страницы ajax-ом?

Здравствуйте, интегрирую одношаговое оформление заказа и необходимо на основании складов самовывоза сформировать карту. При первой загрузке страницы, карта загружается,но после выбора другого способа оплаты(происходит перезагрузка ajax) ,карта не загружаешься (не инициализируеться ).Как выполнять инициализацию карты после перезагруpки страницы ajax?

function initialize() {
		console.log('1');
		var centered     = {lat: 60.937008, lng: 60.640778};
		var markers = [];

		var map = new google.maps.Map(document.getElementById('map'), {
			zoom: 3,
			center: centered,
			disableDefaultUI: true,
			disableDoubleClickZoom: true,
			scrollwheel: true,
			mapTypeIds: [google.maps.MapTypeId.ROADMAP ]
		});

		$('.js-radio').each(function(){
			var lat = parseFloat($(this).attr('data-lat'));
			var lng = parseFloat($(this).attr('data-lng'));
			var id = $(this).attr('data-id');
			var marker = new google.maps.Marker({
				position: {lat: lat, lng: lng},
				map: map,
				id: id
			});
			markers.push(marker);
		});

		for(var key in markers){
			var item = markers[key];
			item.addListener('click', function() {
				var num = this.id;
				$('input[data-id='+num+']').closest('label').click();
				$('#js-list').click();
			});
		}

	}
	google.maps.event.addDomListener(window, 'load', initialize);
  • Вопрос задан
  • 678 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Наверняка после аякс запроса Вы обновляете данные на странице, и если просмотрите код, то контейнер для карты будет пуст (#map), поэтому необходимо снова инициализировать карту, делается это как правило в обработчике события complete аякс запроса, в Вашем случае достаточно добавить вызов функции initialize в данном обработчике
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы