2016-06-02 4 views
0

페이지의 완전로드 후에 불려지는 기능을 가지고 있습니다. 이 기능 아래JavaScript에서 객체에 액세스하는 방법은 무엇입니까?

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

이 방법 click있다 :이 기능은 구글 맵 객체를 생성 내가 액세스 $(".click")

답변

3

var map 객체 얻을 수 당신이 return 문을 추가 할 수있는 방법을

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

당신의 기능 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

초기화를 다시 호출하면 맵이 다시로드됩니다.이 문제는 – 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

관련 문제