gpt4 book ai didi

javascript - 重新加载 map 时 google.maps.event.trigger 不运行

转载 作者:行者123 更新时间:2023-12-04 01:21:10 25 4
gpt4 key购买 nike

我有一个使用 Google maps api v3 的项目,我正在使用 google.maps.event.trigger 来调用或触发 map 加载时创建的监听器。在本例中,我在多边形点击时设置了监听器,因此当多边形被点击时,它会打开相关的信息窗口,并且 google.maps.event.trigger 设置在同一 javascript 文件中的另一个函数 block 上。重新加载整个网络程序时,它运行良好。但是,当我重新加载 map 或使用具有相同变量对象的多边形重新初始化 map 时,语法 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 

这个 undefined object 是一个 PolyMouseEvent .当真正的点击发生时,这个对象将被传递给点击回调。但是当您以编程方式触发点击时,这个对象丢失了,是什么导致了上面的错误(并且在重新初始化 map 后以某种方式停止了点击监听器的绑定(bind))。

解决方案:当您以编程方式触发点击时,将一个空对象作为参数传递给点击回调:

google.maps.event.trigger(polygon[nomor], "click", {});

演示:http://jsfiddle.net/doktormolle/jVFN2/

关于javascript - 重新加载 map 时 google.maps.event.trigger 不运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23490984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com