2011-04-27 40 views
2

過去幾周我們一直在研究基於Google Maps API v3的應用,當時我們發現某種標記的點擊事件已停止工作。我們改變了大小並增加了這些標記的數量,假設我們的代碼很糟糕,但回覆沒有解決問題。單擊Google Maps API v3上的偵聽器事件不起作用

我們的代碼非常簡單。創建標記(在本例中稱爲OBJ)後,我們會做到以下幾點:

google.maps.event.addListener(obj, 'click', 
    function(coords){ localClick(coords, id); }); 

localClick是我們的功能之一,alert('click!');也取得了什麼。

經過幾天的摸爬滾打,我們注意到一些奇怪的現象:的一些標記正在工作。然後,我們發現的,共有點擊幾乎看不見的標記,但在錯誤的地方水平線:

enter image description here

這種情況對OSX所有的瀏覽器(我們沒有在Windows或Linux試試)。

一個解決方案是指定您使用的v3.2的API版本。這並不理想,因爲我們希望保持最新狀態。直到最近,它正在開發最新版本(v3.4)。

這樣調用谷歌地圖API中,它不工作:

$.getScript("https://maps-api-ssl.google.com/maps/api/js? 
    sensor=false&callback=mapLoaded"); 

像這一切的偉大:

$.getScript("https://maps-api-ssl.google.com/maps/api/js? 
    sensor=false&v=3.2&callback=mapLoaded"); 

我們很不解。

不幸的是,我們不能發佈代碼或工作演示(我知道這降低了響應率,客戶端要求)。

回答

2

如果您爲標記使用自定義疊加層,則使用錯誤的MapPane可能是問題的原因。某些窗格可能不會收到如在map api reference中所述的dom事件這是我想到的唯一的事情。

+0

這很有趣。儘管我認爲MarkerManager(由Google提供)正在使用它們,但MapPanes並未在我們的代碼中的任何位置引用。錯誤的定位如何與MapPane理論相適應? – 2011-04-29 04:04:37

+0

它不適合,與你提供的細節,我只是拋出一個想法,因爲你沒有使用自定義覆蓋,我的理論崩潰:) – solidrevolution 2011-04-29 05:07:02

+0

感謝您去了解它。看起來它最終成爲新代碼中的一個錯誤,可能與MarkerManager工具包交互。 – 2011-08-08 22:05:19

相關問題