2013-10-10 51 views
0

我有我一直在使用谷歌地图JavaScript API中包含了每个位置映射标记创建的地图。然后,我在地图外的边栏中的每个位置都有一个链接,当点击它时打开相关位置的infoWindow。这一切都很好。我试图弄清楚的是如何使绑定“走另一条路”,以便当我点击其中一个标记时,相应的链接(这些是页面上的列表项)被突出显示。当创建它们存储在与阵列位置,然后嵌入链接的数组地图标记,所以点击功能只需要标记的位置数组中:结合谷歌地图侧边栏链接标记

side_bar_html += '<li id="li-'+ (markersArray.length-1) + '"><a href="javascript:myclick(' + (markersArray.length-1) + ')">' + address[1] + '<\/a></li>';  

// This function picks up the click and opens the corresponding info window 
function myclick(i) { 
    google.maps.event.trigger(markersArray[i], "click"); 
} 

我一直在看google.maps.Marker类,希望有一些我可以用来做这个绑定,但到目前为止还没有找到我在找什么。基本上我需要的是在标记的addListener函数中,我可以在链接中嵌入一个唯一标记或id值,以便jQuery查找调用可以突出显示链接以显示哪个已被点击。

我过去所做的是在jQuery查找返回的节点上只添加调用addClass,但这不起作用。当我执行“检查元素”时,该链接显示正确,但我正在尝试添加的用于执行突出显示的类未添加。

谷歌地图具有内置于其地图结果的此功能。感谢您的任何建议。

这里就是我试图通过增加一类的链接节点处理click代码:

google.maps.event.addListener(marker, 'click', function() { 
        infowindow.setContent(address[0]); 
        infowindow.open(map, this); 

$("#marker_links").find(".currentlySelected").removeClass("currentlySelected"); 
var linkItem = $("#marker_links").find("#li-" + markersArray.length-1); 
linkItem.addClass('currentlySelected');      


       }); 

凡currentlySelected的定义是:如果我登录的linkItem到

nav li.currentlySelected { 
    border: 0; 
    background-color: white; 
    color: #6d6e71; 
} 

控制台我得到什么似乎是一个有效的对象,但addClass不会粘...

+0

click事件应该与创建您的标记代码一起定义。在这里或者小提琴上添加代码会有帮助。 – Andy

回答

0

以下是如何绑定到标记点击事件:

google.maps.event.addListener(marker, 'click', function() { 
    // highlight link here 
}); 

请参阅Fiddle

0

通过为每个列表元素的骨干视图,然后从的addListener单击处理程序内调用它的亮点功能,每次迭代过程中设置在底层模型标记阵列位置解决了这个。感谢小提琴链接,它帮助我看到我做错了什么。