当地图重新加载时,Google.maps.event.trigger不会运行
google.maps.event.trigger not run when map reload
我有一个使用Google maps api v3的项目,我使用google.maps.event.trigger
来调用或触发当地图加载时创建的侦听器。在这种情况下,我设置监听器在多边形点击,所以当多边形被点击,它打开相关的信息窗口和google.maps.event.trigger
设置在同一javascript文件的另一个块的功能。当整个web程序重新加载时,它运行良好。但是,当我重新加载地图或地图与相同的变量对象的多边形重新初始化,语法google.maps.event.trigger
不运行。这是我使用google.maps.event.trigger
function callInfoPoly(nomor){
alert(polygon[nomor].getPath().getAt(0));
google.maps.event.trigger(polygon[nomor], "click");
}
警报运行良好,这意味着变量包含多边形对象,但google.maps.event.trigger
不运行
当你在触发点击后查看控制台时,你会看到一个错误:
Uncaught TypeError: Cannot read property 'vertex' of undefined
这个未定义的对象是PolyMouseEvent。当真正的点击发生时,这个对象将被传递给点击回调函数。但是当您以编程方式触发点击时,这个对象就丢失了,这就导致了上面的错误(并且在重新初始化映射后以某种方式停止了点击侦听器的绑定)。
解决方案:当您以编程方式触发click时,将一个空对象作为参数传递给click-回调:
google.maps.event.trigger(polygon[nomor], "click", {});
演示: http://jsfiddle.net/doktormolle/jVFN2/
相关文章:
- issue with FB.Event.subscribe
- Angularjs :$routeChangeStart event
- 单击超链接时,如何使用Google Maps API v3缩放地图
- event.prventDefault()持续多久
- 使用Google Maps API向标记添加多个字符
- Google Maps API OverlayView()在AngularJS指令中不起作用
- <text区域>在我的html中包含event.keycode==13之后,wrap就不起作用了
- google.maps.event.addDomListener(window, 'load', fun
- 注册'单击'事件与google.maps.event.addlistener(自动完成,..)
- 我是否必须使用 google.maps.event.addListener(marker, 'click'
- google.maps.event.addListener 不是一个函数
- 如何在google.maps.event.addListener中使用此功能
- google.maps.event.addDomListener(window,'load',initi
- Event inside Event in Google Maps API
- google.maps.event的问题.触发(地图,“resize")
- Asp,Google地图Api:通过Google .maps.event. addlistener向asp:文本框显示位
- 如何使用map.getCenter()和google.maps.event.trigger()
- 当地图重新加载时,Google.maps.event.trigger不会运行
- 什么是“;google.maps.event.addDomListener(窗口,'加载',初始化)&q
- 将指向对象的指针安全地传递给google.maps.event.addListener