2013-03-26 103 views
2

這一個讓我難住,我希望第二組眼睛能夠指出問題所在。我意識到我的抽象庫增加了很多額外的複雜性,但我認爲別人可能在實現中看到類似的東西。我也試圖將其歸結爲儘可能簡單和有針對性的情況。設置爲可拖動的標記不能被拖動

問題是無法拖動通過Google Maps API創建並添加到地圖並設置爲可拖動的標記。這曾經工作得很好,但我在圖書館的某個地方做出的改變打破了這個功能。要重現,去http://www.nps.gov/npmap/support/library/examples/map-defaults.html?api=google,然後粘貼到瀏覽器的web開發控制檯下面的代碼:

var marker = new google.maps.Marker({ 
    position: NPMap.Map.Google.map.getCenter(), 
    draggable: true, 
    map: NPMap.Map.Google.map 
}); 

的標誌應該是可拖動的,但事實並非如此。

的幾個注意事項:

  • 標記仍然是可點擊的,而且好像所有標記事件(鼠標懸停等)工作正常
  • 線,多邊形添加到地圖爲可編輯做工精細
  • 我玩過地圖div和其他一些元素的z-index,但這似乎不會導致問題
  • 我加載了當前版本的Google Maps API v3.11 。我已經用冷凍版本3.10和實驗版本v3.12進行了測試,但無論加載哪個版本,問題都會持續存在。

任何幫助,非常感謝!

UPDATE:奇怪。添加了draggable: true的標記似乎不可點擊。但是,如果添加標記而未指定draggable: true,則確實似乎是可點擊的。看起來這可能是相關的。

更新2:一個跟進我的第一次更新:活動不會向與draggable: true創建並添加到地圖標記工作。創建標記後,您可以運行以下代碼以進行測試:

google.maps.event.addListener(marker, 'click', function(e) { 
    console.log(e); 
}); 
+0

Draggable標記適用於當前版本和實驗版本。你的鏈接不適合我,所以我看不到你的代碼的其餘部分。 – geocodezip 2013-03-26 17:40:27

+0

是的,我們現在顯然有CDN問題(很好的時機,對吧?)。我會嘗試在其他地方找個例子。 – 2013-03-26 17:44:14

+0

它已經備份。至少現在。 – 2013-03-26 19:09:35

回答

0

找出來了。我在做這樣的事情破解周圍的一些默認的谷歌地圖的控制:

var els = document.getElementsByClassName('gmnoprint'); 

for (var i = 0; i < els.length; i++) { 
    els[i].style.display = 'none'; 
} 

在過去這並沒有影響拖動的標記,但谷歌必須作出了地圖API的變化,並開始加入gmnoprint類可拖動標記。哦,那就是我得到的文件API之外的東西。