Почему не происходит инициализация 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);
  • Вопрос задан
  • 664 просмотра
Пригласить эксперта
Ответы на вопрос 1
Наверняка после аякс запроса Вы обновляете данные на странице, и если просмотрите код, то контейнер для карты будет пуст (#map), поэтому необходимо снова инициализировать карту, делается это как правило в обработчике события complete аякс запроса, в Вашем случае достаточно добавить вызов функции initialize в данном обработчике
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы