我有一张地图,旁边有一个侧栏div。我正在努力使地图上的每个标记在侧边栏中都有相应的超链接,点击后,该标记的信息框会弹出。
function linkClick(){
google.maps.event.trigger(gmarkers[cpid], "click");
}
content += '<a href="javascript:linkClick(' + cpid + ')">'+tmpName+"</a><br>";
$("#cplist").html(content);
cpid是地图上每个点的唯一ID,该值与数据库的其余信息一起存储在数据库中。
我在地图上有我的标记,在侧栏中有我的链接,但我不确定如何在两者之间建立连接。我已经创建了'linkClick'函数来尝试实现这一点,但我得到了错误:
ReferenceError: Can't find variable: linkClick
目前,上述所有代码都在循环中,用于绘制地图上的标记。我想我已经包含了足够的细节/代码。
这是我想要实现的一个例子http://www.geocodezip.com/v3_MW_example_categories.html
答案 0 :(得分:2)
我建议您更改方法 - 而不是尝试推送click
事件,只需直接转到InfoWindow
并致电open
即可。代码中的其他地方,每个标记都有一个click
事件监听器,可以打开InfoWindow
;因此,当调用附加到链接的InfoWindow
函数时,保持对click
个实例的引用并打开它们,就像在标记onlick
事件处理程序中一样。
或者,如果您遵循共同的策略并使用单个全局InfoWindow
,只需编写一个接受cpid
的函数,将必要的内容放在InfoWindow
中,设置正确的position
,然后调用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>";
答案 1 :(得分:0)
我曾做过类似的东西,但是我没有使用元素a
而是使用了一个按钮,就像javascript pure在事件中OnClick
我把我的事件处理程序运行起来,所以在你的情况下我试图像这样处理这个事件
<a onClick=linkClick(' + cpid + ')">'+tmpName+"</a>
答案 2 :(得分:0)
对于函数,您没有传递任何变量, 这就是为什么它给出了ReferenceError:找不到变量:linkClick
function linkClick(cpid){
google.maps.event.trigger(gmarkers[cpid], "click");
}
content += <a onClick=linkClick(' + cpid + ')">'+tmpName+"</a><br>";
$("#cplist").html(content);