2017-09-13 1 views
-1

, also habe ich Google Map zu meiner Website hinzugefügt. Beim ersten Laden der Seite - es wird nicht geladen. Beim Auffrischen - manchmal lädt es auch nicht.Google Map lädt nicht beim ersten Mal und manchmal bei der Aktualisierung

Code:

html:

<div id="map"> 
 
    </div> 
 
    
 
    <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script> 
 
    <script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDKxMTYIeZepn8E6EULm9eFZCixv960J2s&callback=initMap"> 
 
    </script> 
 
    <script src="script.js"></script>

jquery:

function initMap() {}; 
 
$(document).ready(function() { 
 
    initMap = function() { 
 
    var myLatLng = { 
 
     lat: 40.1511, 
 
     lng: -2.150609 
 
    }; 
 
    var map = new google.maps.Map(document.getElementById('map'), { 
 
     zoom: 16, 
 
     center: myLatLng, 
 
     disableDefaultUI: true, 
 
     styles: [ 
 
      ....  
 
     ] 
 
    }); 
 
    var marker = new google.maps.Marker({ 
 
     position: myLatLng, 
 
     map: map, 
 
     title: '........', 
 
    }); 
 
    } 
 
});

P.S. Die Google-Funktion befindet sich in der separaten Datei "script.js".

Antwort

1

Entfernen Sie alle Ihre $(document).ready Unsinn (solange script.js erscheint nach Ihrer <div id="map"></div> das ist alles, was zählt).

Das eigentliche Problem ist wahrscheinlich die seltsame initMap Erklärung (Sie es erklären zuerst, dann neu deklarieren es in $(document).ready

So script.js sollte wie folgt aussehen:.

var initMap = function() { 
    var myLatLng = { 
     lat: 40.1511, 
     lng: -2.150609 
    }; 
    var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 16, 
     center: myLatLng, 
     disableDefaultUI: true, 
     styles: [ 
      ....  
     ] 
    }); 
    var marker = new google.maps.Marker({ 
     position: myLatLng, 
     map: map, 
     title: '........' 
    }); 
} 

All dies und Pop öffnen Sie Ihre Konsole, wenn Sie laden, um sicherzustellen, dass Sie keine Fehlermeldungen sehen.

+0

Sorry, wenn ich harsch klang, war es keine Frage, Menschen, die JavaScript seit vielen Jahren schreiben immer noch ahnungslos wrap e Alles in "$ (document) .ready", nicht weil sie wissen warum, sondern weil sie das immer getan haben und sie denken, dass es notwendig ist. – Adam

Verwandte Themen