2013-03-26 59 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之外的东西。