我正在尝试写一些谷歌地图功能,并使用
javascript关闭来试图组织和构建我的代码更好.
我有以下代码:
var gmapFn ={ init : function(){ if (GbrowserIsCompatible()) { this.mapObj = new GMap2($("#map_canvas")); this.mapObj.setCenter(new google.maps.LatLng(51.512880,-0.134334),16); } } }
然后我稍后在jquery文档中调用它:
$(document).ready(function() { gmapFn.init(); })
我已经设置了google地图键,但是我在main.js上收到错误:
未捕获的异常:[异常…“组件返回失败代码:0x80004005(NS_ERROR_FAILURE)”nsresult:“0x80004005(NS_ERROR_FAILURE)”位置:“JS frame :: http://maps.gstatic.com/intl/en_ALL/mapfiles/193c/maps2.api/main.js :: ig :: line 170”data:no]
QO()
这个错误似乎被抛在了GbrowserIsCompatible()测试中,我使用这个闭包对我来说是有帮助的,有没有办法把它保持在一个闭包中并让init()工作?
解决方法
您的代码或实现没有任何问题,保存了GMap2不能使用jQuery对象作为参考的事实.使用原始的document.getElementById(“map_canvas”).
或者,您可以使用$(“#map_canvas”)[0]或$(“#map_canvas”).get(0)引用实际的DOM元素,并将其传递给GMap2构造函数,如果要符合您的使用的jQuery.
顺便提一句,你似乎正在混合v2与v3,例如新的google.maps.LatLng()和新的GLatLng().