2017-01-23 2 views
-1

У меня есть веб-сайт тестирования приложений, как указано ниже:Google Map JS API не загружается правильно, если не освежил в JQuery Mobile

Testing Site

И проблема я имею, если нажать «Карта» на внизу, когда страница загружает масштаб на карте, неверна, и, похоже, она не загружает дороги или что-то еще. Если я обновляю ссылку привязки якоря #map, тогда страница загружается нормально, а карта отображает правильную информацию. Что может быть причиной этого?

Спасибо за помощь. Я очень ценю это.

+0

Добро пожаловать в stackoverflow! На ваш вопрос в настоящее время не хватает информации, необходимой для получения хороших ответов. Просьба привести пример кода, показывающего проблему, а не только ссылку на сайт. См. Также: http://stackoverflow.com/help/how-to-ask – dgvid

ответ

2

Это потому, что вы звоните следующее:

google.maps.event.addDomListener(window, 'load', initMap); 

перед вами источник:

<script async defer 
    src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBpoSVdtZlPqe8aHatLN8JdUrtpP6gh2D4&callback=initMap"> 
    </script> 

Перемещение API Src вызов Google на свой первый источник сценария.

------- EDIT -------

Я просто заметил, что вы используете функцию обратного вызова в Src вызова Google Maps. Это немного меняет ситуацию.

Из-за этого вы захотите использовать Google Карты в последний раз.

Обязательно переместите свой вызов google.maps.event.addDomListener(window, 'load', initMap); в свою функцию инициализации.

Я создал небольшой JSFiddle здесь для вас:

https://jsfiddle.net/iamjpg/4v4rmndo/

<script> 

    var initMap = function() { 
    alert('init Map!') 
    } 

    var initialize = function() { 
    alert('Initialize!!!'); 
    google.maps.event.addDomListener(window, 'load', initMap); 
    } 

</script> 

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&callback=initialize"></script> 
+0

Я просто переместил его, как вы сказали, и он все еще не работает с первой загрузкой –

+0

Большое вам спасибо! :) –

0

У вас есть код, который пытается выполнить до загрузки сценария Google, что приводит к ошибке консоли (всегда хороший идея, чтобы посмотреть в консоли, когда что-то не работает):

google.maps.event.addDomListener(window, 'load', initMap);

Место вашей ссылки к сценарию google выше этого, или поместите такой код внутри готового обработчика, чтобы убедиться, что он не выполняется до тех пор, пока DOM не будет загружен вместе с ссылками на скрипты.

 Смежные вопросы

  • Нет связанных вопросов^_^