Domanda

Ho un piccolo pulsante sulla mia pagina che dovrebbe caricare una mappa di Google. Dal momento che voglio che la mia pagina si carichi molto velocemente e questa funzione non è in realtà necessaria, non voglio incorporare lo script API di Google Maps sul carico di pagina. Voglio solo caricarlo quando il pulsante viene effettivamente cliccato.

Ho provato a usare il metodo jQuery $ .getScript (), tuttavia se sto usando il codice sopra sto ottenendo una pagina vuota. La pagina inizia a caricare e non appena il mio file JavaScript viene eseguito, la pagina è vuota (bianco).

$.getScript("http://maps.google.com/maps/api/js?sensor=false", function(){
    $('#googleMap').live('click', function(e) {

        e.preventDefault();
        loadMap("mapBottomContainer", false);

    });
});

Cosa sto facendo di sbagliato qui?

Modifica/aggiornamento:

Non sembra fare la differenza se lo faccio:

$('#googleMap').live('click', function(e) {

    $.getScript("http://maps.google.com/maps/api/js?sensor=false", function(){

        e.preventDefault();
        loadMap("mapBottomContainer", false);

    });

});

La pagina non viene vuota nel caricamento della pagina, tuttavia non appena faccio clic sul taglio delle maps, la pagina viene sbiancata.

Aggiornamento 2:

la funzione di caricma:

function loadMap(cont, scroll) {

    var latlng = new google.maps.LatLng(47.244236,11.249194);
    var options = {
        zoom: 14,
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        scrollwheel: scroll,
        streetViewControl: false,
        navigationControlOptions: {  
            style: google.maps.NavigationControlStyle.SMALL 
        }
    }

    var map = new google.maps.Map(document.getElementById(cont), options);

    var mapdesc = '<div id="gmContent">'+
    '<h3 id="gmTitle" class="widget-title">Something</h3>'+
    '<div id="gmBody">'+
    '</div>'+
    '</div>';

    var infowindow = new google.maps.InfoWindow({
        content: mapdesc
    });

    var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        title: 'My Title'
    });

    google.maps.event.addListener(marker, 'click', function() {
        infowindow.open(map,marker);
    });

    infowindow.open(map,marker);

}

Nessuna soluzione corretta

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top