谷歌地图变量的范围和调用方法
Scope of Google Map variable and calling method
我正在使用Google Maps API来熟悉JavaScript。我是一个糟糕的程序员,所以请原谅我。
我不太确定为什么下面的代码不起作用,你可以在这里检查JSFiddle:http://jsfiddle.net/m9QLx/
var map;
function initialize() {
var myOptions = {
center : new google.maps.LatLng(34.053228, -118.259583),
zoom : 11,
zoomControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
},
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
};
google.maps.event.addDomListener(window, 'load', initialize);
map.panTo(new google.maps.LatLng(37.4569, -122.1569));
一切正常,但我不确定为什么 panTo 方法不起作用,据我所知,在所有函数之外声明 var map 使其全局,然后我在 initialize() 函数中设置 map,但在这个 initialize() 函数之外,panTo 方法不起作用,map 似乎未定义。
我确定我犯了一个新手错误,但我找不到答案(我确定我在谷歌上搜索了错误的东西)。
如果有人能拯救我的理智,谢谢。
您正在尝试在初始化映射之前使用 map.panTo 方法。
这会导致初始化函数在页面触发其"load"事件时运行(已呈现完整的 DOM/页面):
google.maps.event.addDomListener(window, 'load', initialize);
这将在 "load" 事件触发和映射变量初始化之前立即执行:
map.panTo(new google.maps.LatLng(37.4569, -122.1569));
所以它什么都不做。 您应该在映射初始化后将其移动到初始化函数中。
var map;
function initialize() {
var myOptions = {
center : new google.maps.LatLng(34.053228, -118.259583),
zoom : 11,
zoomControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
map.panTo(new google.maps.LatLng(37.4569, -122.1569));
};
google.maps.event.addDomListener(window, 'load', initialize);
相关文章:
- 未捕获错误:无法在初始化之前调用方法;
- 通过ajax从客户端调用C#方法来执行C#方法
- 如何避免在angular上多次调用方法;s ng重复
- React路由器错误-'无法调用方法'getRouteAtDepth'的未定义'
- 从window.onbeforeunload调用方法背后的代码
- 当输入字段为空时,如何在angular中调用方法
- 函数调用方法有什么用
- 多次调用方法后返回相同promise的模式
- 当从Chrome扩展动态注入JS时,从onload()内部调用方法
- 茉莉花 - 未调用方法
- jQuery如何在原型中调用方法
- ng显示“;调用方法“;不起作用
- Odoo销售点如何访问模型并使用JS调用方法
- 从React调用方法.JS州
- TinyMCE验证给出错误:无法调用方法'getContent'的未定义
- 向模板实例变量传递调用方法调用的结果时出现异常
- 如何在对象中调用方法
- 检查对话框是否为 Open 会引发“初始化前无法在对话框上调用方法”错误
- 在输入类型提交按钮上调用 C# 方法
- 通过类选择器单独调用方法