2013-10-10 49 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單擊處理程序內調用它的亮點功能,每次迭代過程中設置在底層模型標記陣列位置解決了這個。感謝小提琴鏈接,它幫助我看到我做錯了什麼。