在我的网站页面中,我有一个(由2 amigos/yii-google-map-library插件自动生成)google map init脚本。
(function(){
function initialize(){
var mapOptions = {"center":new google.maps.LatLng(43.8998984000,12.8599824000),"zoom":14};
var container = document.getElementById('gmap0-map-canvas');
container.style.width = '512px';
container.style.height = '512px';
var gmap0 = new google.maps.Map(container, mapOptions);
};
google.maps.event.addDomListener(window, 'load', initialize);
})();
使用jquery我有一个添加标记的功能(在某个事件上触发)
function(e) {
var lat = e.params.data.coords.lat;
var lng = e.params.data.coords.lng;
var coords = new google.maps.LatLng(lat, lng);
var marker = new google.maps.Marker({
position: coords,
title: 'Test',
map: gmap0
});
gmap0.setCenter(marker.getPosition());
}
脚本按此顺序启动,因此首先声明var gmap0。但如果去执行代码,则会返回此错误:
ReferenceError:未定义gmap0
我能做什么?
答案 0 :(得分:3)
你必须在初始化函数之外声明你的var,这样var对另一个函数
是可见的<script>
var gmap0 ;
(function(){
function initialize(){
....
gmap0 = new google.maps.Map(container, mapOptions);
.....
google.maps.event.addDomListener(window, 'load', initialize);
})();
</script>