Javascript 在谷歌地图上打开标记信息窗口的超链接

Javascript 在谷歌地图上打开标记信息窗口的超链接,javascript,google-maps-api-3,google-maps-markers,Javascript,Google Maps Api 3,Google Maps Markers,我有一张地图,旁边有一个边栏。我试图使地图上的每个标记在侧边栏中都有一个对应的超链接,单击时,该标记的信息框会弹出 function linkClick(){ google.maps.event.trigger(gmarkers[cpid], "click"); } content += '<a href="javascript:linkClick(' + cpid + ')">'+tmpName+"</a><br>"; $("#cplist").ht

我有一张地图,旁边有一个边栏。我试图使地图上的每个标记在侧边栏中都有一个对应的超链接,单击时,该标记的信息框会弹出

function linkClick(){
   google.maps.event.trigger(gmarkers[cpid], "click");
}

content += '<a href="javascript:linkClick(' + cpid + ')">'+tmpName+"</a><br>";
$("#cplist").html(content);
目前,上述所有代码都在地图上绘制标记的循环中。我想我已经包含了足够的细节/代码


这是我想要实现的一个例子,我曾经做过类似的事情,但是我没有使用元素
a
,而是在事件
OnClick
中使用了一个按钮,就像javascript一样,我放置了我的事件处理程序,它可以工作,所以在您的例子中,我尝试像这样处理事件

<a onClick=linkClick(' + cpid + ')">'+tmpName+"</a>

对于未传递任何变量的函数,
这就是它给出引用的原因错误:找不到变量:linkClick

function linkClick(cpid){
   google.maps.event.trigger(gmarkers[cpid], "click");
}

content += <a onClick=linkClick(' + cpid + ')">'+tmpName+"</a><br>";
$("#cplist").html(content);
功能链接点击(cpid){
google.maps.event.trigger(gmarkers[cpid],“点击”);
}

content+=我建议改变你的方法-与其尝试推送
点击
事件,只需直接转到
信息窗口
并调用
打开
。在代码的其他地方,对于每个打开
信息窗口的标记,都有一个
单击
事件侦听器;因此,在调用附加到链接的
onlick
函数时,请维护对
InfoWindow
实例的引用并打开它们,就像在marker
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>";
content+='
”;
linkClick定义是
linkClick()
(无参数),但在标记中您正在写入linkClick(cpid),传递一个参数。这与您的问题并不相关,但我觉得不一致。即使将代码更改为如上所述,不幸的是,我仍然会收到相同的错误。我仍然有点困惑..在我的循环中,绘制标记/用内容填充侧栏,我为信息窗口
google.maps.event.addListener提供了此代码(标记,'click',函数(){infowindow.setContent(tmpName+“是”+tmpDist+“离您很远。”);infowindow.open(map,this);})
您是否建议我在此侦听器中设置代码,以便在单击链接时显示打开信息窗口?不,我是说,单击链接时,具有一个包含基本相同代码的函数(与事件侦听器中的代码相同)并调用包含
onClick
中代码的函数。我在回答中添加了更多细节,以试图澄清。如果我的第一个回答是简短的,请道歉。因此我有
content+=''+tmpName+“
”;$(“#cplist”).html(content)
我应该把'linkClick'函数放在循环的内部还是外部,因为我一直收到这样的错误:“找不到变量:linkClick”我不确定你指的是什么循环,但它必须放在某个可以从你为链接的'onClick'定义的代码中访问到的地方。
content += '<a href="javascript:openInfoWindow(' + cpidAndWhateverElseParam +
    ')">'+tmpName+"</a><br>";