2013-08-23 31 views
1

我有一個有點問題與OverlappingMarkerSpiderfier的谷歌地圖API事件:谷歌地圖與OMS - 響應標記屬性點擊

接近腳本的開始,存着我所有標誌物在一個名爲「parentNodes」的數組。當我點擊一個標記時,我需要能夠檢測到該標記的「id」(「id」是每次我初始化它們時設置的每個標記的屬性),以便我可以運行另一個隱藏所有標記的函數除了我點擊的標記之外。

我試過在初始化它們之後爲每個標記添加一個偵聽器,但它不會識別該數組,即使它是全局的,只要我點擊一個「parentNodes [i]是未定義的」標記。

for(var i = 0; i < parentNodes.length; i++) 
      { 
       oms.addListener('click', function() 
       { 
        console.log(parentNodes[i].id); 
       }); 
      } 

我在想,一個更好的解決辦法只是有一個監聽器,但有一個訪問標記的性質,如果聽衆不知道被點擊,只有是否其中一種方式或者不是其下的其他標記?還是聽者知道?

回答

0

這是一個常見問題(通常關於在循環中初始化的infowindows)。 「i」大於parentNodes.length,所以parentNodes [i]是未定義的。

+0

我不確定我是否遵循...我在初始化parentNodes數組中的一個不同的函數之前調用此函數,但它使用相同的「for」循環。這裏的parentNodes [i]是不是應該引用我已經初始化的全局數組元素?這是關閉嗎? –

+0

在你的代碼中輸出未命中錯誤的地方設置一個斷點,看看「我」的值是多少。你問:「這是關閉嗎?」可能。 – geocodezip