javascript - 如果 google.maps.Rectangle 和 InfoBox 重叠,地图上的点击事件会触发两次
问题描述
我正在使用 Google Maps API v.3 和 custom InfoBox
。
问题是,如果InfoBox高于并且重叠,则地图上的Click
事件会触发两次。google.maps.Rectangle
InfoBox
pane
pane
google.maps.Rectangle
默认google.maps.InfoWindow
工作正常,click
事件不会“渗透”到基础元素上,例如google.maps.Rectangle
.
我为测试目的准备了一个小例子。
我怎样才能避免这种渗透?
解决方案
当您单击地图中的任何内容时,单击事件会“冒泡”直到到达地图的根元素。然后,那里的事件处理程序根据点击的坐标决定点击了什么。
阻止问题发生的一种方法是阻止点击事件到达地图根目录。
这是通过调用event.stopPropagation()
事件来完成的。您可以添加一个事件处理程序来执行此操作;例如在您的信息框中:
var infobox_options = {
content: '<div onclick="event.stopPropagation()" style="cursor:default;width:100px;height:100px;border:2px solid #000;text-align:center;background:pink;z-index:10;"><a style="z-index:999" target="_blank" href="http://vk.com">CLICK</a></div>',
disableAutoPan: true,
//pixelOffset: pixelOffset,
position: point,
closeBoxURL: "",
isHidden: false,
pane: "floatPane",
};
推荐阅读
- amazon-web-services - 当模板相互导出值时,如何上传/部署和组织 AWS CloudFormation 模板
- android - 有空格时 Flutter String.contains(substring) 失败
- c# - 如何将 Serilog.Log.ForContext 与 F# 函数或 C# 方法一起使用
- python - df = pd.read_csv("C:\Python\nycrime.csv") 不工作
- eclipse - 如何从具有 artifact.jar、content.jar 和插件文件夹的本地工件安装压缩的 Eclipse 插件
- swift - 在 Xcode 中运行 Mac Catalyst 应用程序时出现错误代码 -10670
- javascript - 如何使用 AJAX 将查询集从 html 传递到 django 中的views.py?
- python - 在 Matplotlib 中按列值创建子图
- android - 如何更改 CollapsibleToolbar 标题的颜色?
- c# - 预警系统。请求失败。远程服务器返回错误:(401) Unauthorized on Mac OS only