[英]Hyperlink to open marker infowindow on Google Map
我有一張地圖,旁邊有一個側欄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
我建議改變你的方法 - 而不是試圖推動click
事件,只需直接進入InfoWindow
並open
。 代碼中的其他地方,每個標記都有一個click
事件監聽器,可以打開InfoWindow
; 因此,當調用附加到鏈接的onlick
函數時,保持對InfoWindow
實例的引用並打開它們,就像在標記click
事件處理程序中一樣。
或者,如果您遵循一個通用策略並使用單個全局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>";
我做了類似的東西一次,但不是使用一個元素a
我使用一個按鈕,像在事件OnClick
中的javascript純我把我的事件處理程序,它的工作原理,所以在你的情況下,我試圖處理這樣的事件
<a onClick=linkClick(' + cpid + ')">'+tmpName+"</a>
對於函數,你沒有傳遞任何變量,這就是為什么它給出了ReferenceError:找不到變量:linkClick
function linkClick(cpid){
google.maps.event.trigger(gmarkers[cpid], "click");
}
content += <a onClick=linkClick(' + cpid + ')">'+tmpName+"</a><br>";
$("#cplist").html(content);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.