2010-02-08 74 views
1

所以我重寫我的第一個谷歌地圖應用程序,我在看我如何創建信息窗口點擊一個標記,它似乎非常不可能爲每個添加一個偵聽器。以前我用過GInfoWindow和EBubble(http://econym.org.uk/gmap/ebubble.htm)。谷歌地圖和jQuery InfoWindow替換

我想我可以使用jQuery來顯示動態數據的div,如果我有一個鉤子爲每個標記來顯示窗口和相關標記信息(從JSON拉出)。我可以看到每個標記都有唯一的標識(例如mtgt_unnamed_2822),但我不確定如何預測此標記。

有沒有人嘗試過,或知道如何去呢?

感謝 丹尼斯

回答

1

我不知道的jQuery,但JavaScript允許你自己的自定義屬性添加到任何對象。所以,你可以寫這樣的東西:

var marker = new GMarker(...); 
    marker.ID = "mtgt_unnamed_2822"; 

function createMarker(point,newid) { 
    var marker = new GMarker(point); 
    marker.ID = newid; 
    ... 
} 

要小心,不要使用「marker.id」因爲API可以使用「ID」的混淆內部名稱爲現有財產在未來的一些版本中。事實上,避免使用小寫字母開頭的屬性名稱。

將.ID屬性附加到標記後,只要您需要它來進行jQuery調用,就可以從任何標記引用的marker.ID中讀取信息。

+0

感謝邁克,但我正在尋找其他方式在這裏。我想訪問google標記id(不是marker.id,試過),這樣我就可以爲jQuery選擇添加一個泛型類,並且assoiciate也將id與它的特定數據相關聯。這將允許我使用基於jQuery類的選擇器,我認爲這會比爲每個標記添加偵聽器更快。我有道理嗎? – 2010-02-10 11:56:45

+0

我不知道jQuery,所以我並不完全關注你。 是否有助於創建標記ID的全局「關聯數組」? var marker = new GMarker(point); idarray(newid)= marker; 然後idarray(「mtgt_unnamed_2822」)將是對具有該ID的標記的引用。 我知道在Javascript中它們不是真正的「關聯數組」,但它們可以完全像我從其他語言所瞭解和喜愛的真正關聯數組那樣使用,所以這就是我喜歡的方式。 – 2010-02-12 09:14:59