2012-05-07 140 views
0

我有一張地圖,旁邊有一個側欄div。我試圖做到這一點,以便地圖上的每個標記在邊欄中都有相應的超鏈接,點擊後,該標記的信息框會彈出。在Google地圖上打開標記infowindow的超鏈接

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

回答

0

我提出了類似的一次東西,一個例子,但不是使用元素a我用一個按鈕,像JavaScript事件OnClick純,我把我的事件處理程序,它的工作原理,所以你的情況我試圖處理這樣

<a onClick=linkClick(' + cpid + ')">'+tmpName+"</a> 
0

對於功能的情況下,你不能傳遞任何變量, 這就是爲什麼它被賦予的ReferenceError:找不到變量:linkClick

function linkClick(cpid){ 
    google.maps.event.trigger(gmarkers[cpid], "click"); 
} 

content += <a onClick=linkClick(' + cpid + ')">'+tmpName+"</a><br>"; 
$("#cplist").html(content); 
+0

即使將代碼更改爲上述內容,但我仍然不幸遇到同樣的錯誤。 – paulyay

+0

可以調試嗎.. –

2

我建議改變你的方法 - 而不是試圖推動click事件,直接轉到InfoWindow並致電open。在代碼的其他地方,您爲每個標記打開InfoWindow的事件偵聽器爲click;因此保持對InfoWindow實例的引用並將其打開,與標記click事件處理程序中的相同,此時會調用附加到該鏈接的onlick函數。

或者,如果你是以下的共同戰略,並與一個單一的,全球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>"; 
+0

我還是有點困惑..在我的循環繪製標記/填充側邊欄的內容我有這個代碼的信息窗口 'google.maps.event.addListener(marker,'click',function(){{0} {0} {infowindow.setContent(tmpName +「is 「+ tmpDist +」km from you。「); infowindow.open(map,this); });' 您是否建議我在此監聽器中有代碼表示何時單擊鏈接打開信息窗口? – paulyay

+0

不,我是說當鏈接被點擊時,有一個包含基本相同的代碼(你在事件監聽器中)的函數,並調用包含'onClick'代碼的函數。 –

+0

我已經添加了更多的細節給我的答案,試圖澄清。道歉,如果我的第一個答案是簡要說明。 –

相關問題