2012-09-10 53 views
1

我已經添加了一個OverlayView的地圖。我在地圖上有很多不同的標記。 我允許在畫布上單擊繪製的對象,但我不想在疊加對象的啓用屬性爲true時允許在地圖上單擊任何形狀/標記。覆蓋上面的標記,將不會允許點擊它下面的標記,谷歌地圖API V3

我該怎麼做?沒有保留所有標記/形狀的軌道/(可能是很多!),然後對他們每個人的運行,刪除點擊收聽 ,並在年底加入吧..

感謝

回答

1

創建一個變量overlayEnabled,並在每次啓用/禁用疊加時進行更新。然後在您的點擊監聽器中,在執行任何操作之前檢查該變量。

google.maps.event.addListener(marker, 'click', function(e) { 
    if(overlayEnabled) { 
     // perform action 
    } else { 
     // do nothing 
    } 
}); 
+0

這就是我想要避免的。將支票添加到所有標記。我希望它對其他對象不可知,因爲它應該是。 其他的方式將保持陣列和循環所有可見的標記通過他們,而覆蓋是可見的,並調用click事件,當覆蓋隱藏撤銷它,但同樣,我想避免這樣做。 問題是,如果我可以把覆蓋上面的標記覆蓋所以沒有點擊它們將有可能還是這樣做的一些其他的方式.. – user1271518

+0

在嘗試在您使用onAdd DOM中的較高級別中加入您的OverlayView的對象() 。 'this.getPanes()。floatPane.appendChild()' – Rob

+0

不,我曾嘗試過(實際上都是)。原因是:我需要處理鼠標事件,對於畫布而不是標記/多邊形/等等,這會導致2件事:有一個覆蓋層無法處理DOM或有一個可以(因此也觸發標記/多邊形/等等..)...:/ – user1271518