Google Maps API V3 信息窗口错误:“信息窗口未定义”
Google Maps API V3 infowindow error: "infowindow not defined"
我在一个名为markerList
的字典中列出了Google Maps API标记。所有这些都被放置在地图上。然后我创建一个包含我所有infowindow
的数组。然后我需要为它们中的每一个addListener
,以便当在地图上单击标记时,它将在正确的地图和信息窗口中调用infowindow.open
。
不幸的是,当我单击标记时,我在Firebug控制台中收到以下错误:
infowindow is not defined
infowindow.open(map,infowindowList[window]);
这是我的代码:
var infowindowList = {};
for (var aMarker in markerList){
infowindowList[aMarker] = new google.maps.InfoWindow({
content: "This is a test!",
size: new google.maps.Size(50,50)
});
console.log(infowindowList[aMarker]);
}
console.log("Done creating infowindowList...'n...Adding listeners");
for (var window in infowindowList){
google.maps.event.addListener(markerList[window], 'click', function() {
// infowindow.open(map,infowindowList[window]); // wrong, see Edit
infowindowList[window].open(map,markerList[window]);
});
console.log("added listener for window: ", infowindowList[window]);
}
我认为发生这种情况是因为在google.maps.event.addListener(markerList[window]...
函数中,我将要在单击时运行的函数注册为 infowindow.open(map,infowindowList[window])
,但该值 window
是函数的本地值,因此当我单击标记时,该函数不起作用,因为它不知道window
是什么。这是对的吗?
编辑:正如geocodezip指出的那样,infowindow
不存在。所以我把它改成infowindowList[window].open(map,markerList[window]);
,也把最后一个参数改成markerlist[window]
,因为它应该是一个标记作为参数,而不是另一个信息窗口。
您收到错误"未定义信息窗口",因为未定义信息窗口变量。 它当然不是在您发布的代码中定义的。
通常它是全局定义的,因此有一个信息窗口(v2 默认行为),但在这种情况下,您仍然必须定义并创建它(通常在 onload 函数中)。
工作示例
相关文章:
- 如何调整信息窗口的大小并点击按钮?+更改信息窗口的内容
- 谷歌地图点击潜水触发信息窗口
- 将FlowPlayer嵌入谷歌地图信息窗口
- 如何在单击“提交”按钮时为“新建”窗口编写JavaScript,用“确定”和“取消”显示注册信息
- 当我浏览回页面时,谷歌地图信息窗口不会弹出
- 谷歌地图信息窗口Z索引
- 如何隐藏标记簇内标记的信息窗口
- 谷歌地图信息窗口为每个标记显示相同的内容
- 更改内容信息窗口映射v3
- Cartodb信息窗口未在地图上显示变量
- 为位于路线上的谷歌地图标记(起点和终点)设置一个信息窗口
- 信息窗口谷歌地图点击事件给出错误
- Javascript谷歌地图每个信息窗口
- 更新打开的谷歌地图信息窗口
- 如何在显示多个标记时单击另一个标记时关闭信息窗口
- 在弹出窗口中获取信息
- 禁用角度地图中标记和信息窗口的ng点击
- 在谷歌地图的信息窗口内点击按钮
- 谷歌从数组中映射标记、折线和窗口信息
- 使用javascript打开一个带有前一个窗口信息的新窗口