我有一张 map ,旁边有一个侧栏 div。我试图让 map 上的每个标记在侧边栏中都有一个相应的超链接,单击时会弹出该标记的信息框。
function linkClick(){
google.maps.event.trigger(gmarkers[cpid], "click");
}
content += '<a href="javascript:linkClick(' + cpid + ')">'+tmpName+"</a><br>";
$("#cplist").html(content);
cpid 是 map 上每个点的唯一 ID,该值与标记的其余信息一起存储在数据库中。
我在 map 上有标记,在侧栏中有链接,但我不确定如何在两者之间建立连接。我创建了“linkClick”函数来尝试实现此目的,但我收到错误:
ReferenceError: Can't find variable: linkClick
目前,上述所有代码都在循环中,用于在 map 上绘制标记。我想我已经包含了足够的细节/代码。
这是我想要实现的示例 http://www.geocodezip.com/v3_MW_example_categories.html
最佳答案
我建议更改您的方法 - 不要尝试推送 click
事件,只需直接转到 InfoWindow
并调用 open
即可。在代码的其他地方,您为打开 InfoWindow
的每个标记提供了一个 click
事件监听器;因此,当 onlick
函数调用时,维护对 InfoWindow
实例的引用并打开它们,就像在标记 click
事件处理程序中一样附加到链接的调用。
或者,如果您遵循通用策略并使用单个全局 InfoWindow
,只需编写一个接受 cpid
的函数,将必要的内容放入InfoWindow
,设置正确的位置
,然后调用InfoWindow.open(map )
。
因此,如果这是您的事件监听器代码:
google.maps.event.addListener(marker, 'click', function () {
infowindow.setContent(tmpName+" is "+tmpDist+"km away from you.");
infowindow.open(map, this);
});
添加新功能:
function openInfoWindow( cpidAndWhateverElseParam ) {
infowindow.setContent(tmpName+" is "+tmpDist+"km away from you.");
infowindow.open(map, this);
}
并将链接代码更改为:
content += '<a href="javascript:openInfoWindow(' + cpidAndWhateverElseParam +
')">'+tmpName+"</a><br>";
关于javascript - 用于在 Google map 上打开标记信息窗口的超链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10484626/