簡體   English   中英

在Google地圖上打開標記infowindow的超鏈接

[英]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事件,只需直接進入InfoWindowopen 代碼中的其他地方,每個標記都有一個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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM