当我点击地图页面上的链接(不是自己标记)时,我需要在地图上打开信息窗口。到目前为止,这是我的代码,
var marker = new MarkerWithLabel({
map: resultsMap,
id: label,
position: latlng,
title: "Address",
// radius: int_radius ,
draggable: false,
labelAnchor: new google.maps.Point(10, 35),
labelContent: label,
labelClass: "labels",
labelInBackground: false,
mapTypeId: google.maps.MapTypeId.ROADMAP,
icon: image,
customInfo: "dynamic data for each marker"
});
并调用函数
function bindInfoWindow(resultsMap, marker, infoWindow) {
google.maps.event.addListener(marker, 'click',
function(){
infoWindow.setContent(marker.customInfo);
infoWindow.open(resultsMap,marker);
});
$(document).on('click','.store-title', function(){
var linkId = $(this).attr('id');
infoWindow.setContent(marker.customInfo);
infoWindow.open(resultsMap,marker);
});
}
在我的情况下,我无法使用数组来存储标记。有没有办法通过使用如下条件获得marker.customInfo?请注意当我点击标记时它可以工作。我需要它用于后面的onclick功能。
infoWindow.setContent(marker.customInfo where marker.id==linkId);
答案 0 :(得分:0)
这可能会有效,请将其保存在您目前拥有的bindInfoWindow
内:
$(document).on('click','.store-title', function() {
var linkId = $(this).attr('id');
if (linkId == marker.id) {
google.maps.event.trigger(marker, 'click');
}
});
注意我将 - 似乎不需要。marker
作为数据参数传递给click事件句柄,但您可能不需要这样做。
然后我只是触发该标记的点击,而不是重复你已经在标记的点击处理程序中获得的代码。
我假设您添加到每个标记的id
属性与您在链接上读取的'id'属性相同。如果没有,您可以在标记和链接上找到相同的属性。