2016-06-02 12 views
0

Ich habe Funktion, die nach dem vollständigen Laden der Seite aufgerufen wird. Diese Funktion erstellen Objekt Google Map:Wie bekomme ich Zugang zum Objekt in JavaScript?

function initMap() { 
var map = new google.maps.Map(mapDiv, { 
      center: {lat: 0, lng: 0}, 
      zoom: 5, 
      mapTypeId: 'roadmap' 
     }); 
} 

Unterhalb dieser Funktion gibt es Verfahren click:

$(function() { 
    $(".click").click(function() { 
     // How to get instance map here? 
    }); 
}); 

Wie kann ich mich anmelden kann var map in $(".click")

Antwort

3

zum Objekt könnte Sie return-Anweisung legen zum Funktion initMap():

function initMap() { 
    var map = new google.maps.Map(mapDiv, { 
     center: {lat: 0, lng: 0}, 
     zoom: 5, 
     mapTypeId: 'roadmap' 
    }); 

    return map; 
} 

$(function() { 
    var map = initMap(); 

    $(".click").click(function() { 
     // use map here 
    }); 
}); 

Hoffe das hilft.

+0

Ich kann nicht mehrmals initialisieren 'initMap()', da diese Funktion automatisch aufgerufen wird, wenn Seite geladen. – Huligan

+0

Was meinen Sie mit _, weil diese Funktion beim Laden der Seite automatisch aufgerufen wird._? wovon? –

+0

Wenn ich wieder init aufrufen, lädt es Karte neu, das ist Problem – Huligan

1

Sie var außerhalb der Funktion setzen können:

var map; 

function initMap() { 
    map = new google.maps.Map(mapDiv, { 
     center: {lat: 0, lng: 0}, 
     zoom: 5, 
     mapTypeId: 'roadmap' 
    }); 
} 

$(function() { 
    $(".click").click(function() { 
     map // you can access map here :) 

    }); 
}); 

Wenn Sie überprüfen müssen, ist Karte init wurden, ist Check map == undefined oder nicht.

Referenz: https://developers.google.com/maps/documentation/javascript/examples/polyline-complex

+0

Es funktioniert nicht, können Sie überprüfen, – Huligan

+0

, was ist der Fehler? – weigreen

Verwandte Themen