2016-06-02 39 views
0

ページのフルロード後に呼び出される機能を持っています。この機能では、Google Mapオブジェクトを作成します。JavaScriptでオブジェクトにアクセスする方法は?

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

この機能の下には方法clickがあります:

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

私は$(".click")

答えて

3

var mapをオブジェクトへのアクセスを得ることができますどのようにあなたにreturn文を追加することができます機能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 
    }); 
}); 

これが役に立ちます。

+0

私は、 'initMap()'いくつかの時間を初期化することはできません。 – Huligan

+0

この機能は、ページが読み込まれると自動的に呼び出されるため、何を意味していますか?どこから? –

+0

私はinitを再度呼び出すとマップをリロードしますが、これは問題です – Huligan

1

あなたは関数の外VARを置くことができます。

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 :) 

    }); 
}); 

を使用すると、マップがinitをされているされて確認する必要がある場合は、チェックはmap == undefinedかではありません。

参考:ページがロードされたときに、この機能が自動的に呼び出されるためhttps://developers.google.com/maps/documentation/javascript/examples/polyline-complex

+0

これは動作しません、あなたは – Huligan

+0

をチェックすることができますエラーは何ですか? – weigreen

関連する問題