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

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

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

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