2012-10-24 83 views
4

API V3谷歌地图标记被设置可拖动,但不能将其拖到

我有一个标记一个奇怪的问题:

,我把地图上的标记被设置为可拖动,WebInspector报告它作为可拖动的,但我仍然不能拖动它。当我越过标记时,光标不会改变。

底层地图是可拖动的,并且工作正常。

在另一个页面上,使用不同的设置(较少图层),但具有相同的JavaScript,它按预期工作(所以我可以拖动它)。

我也让标记点击并绑定一个事件给它,并且工作正常。光标在鼠标悬停时也会变化。

我用尽了选项....为什么我不能拖动它?这可能与一些zIndex或图层定位有关吗?至于我可以看到,地图上有比其他层更高的zIndex的....

//显示地图

geocoder.geocode({ 'address':address }, function(results, status) { 

    if (status == google.maps.GeocoderStatus.OK) { 

     // map options 
     var mapOptions = { 
      zoom: 14, 
      center: results[0].geometry.location, 
      panControl: false, 
      zoomControl: true, 
      zoomControlOptions: { 
       style: google.maps.ZoomControlStyle.SMALL 
      }, 
      mapTypeControl: false, 
      scaleControl: false, 
      streetViewControl: false, 
      mapTypeId: google.maps.MapTypeId.ROADMAP, 
      scrollwheel: false 
     }; 

     // render map 
     map = new google.maps.Map(J('#'+mapElementId)[0], mapOptions); 

     // set marker 
     marker = new google.maps.Marker({ 
      clickable: true, 
      draggable: true, 
      icon: markerImage, 
      shadow: markerShadow, 
      shape: markerShape, 
      map: map, 
      position: results[0].geometry.location 
     }); 

     google.maps.event.addListener(marker, 'click', function() { alert('marker clicked'); }); 
     google.maps.event.addListener(marker, 'dragend', function() { 
      alert('marker dragged') 
      map.setCenter(marker.getPosition()); 
      J('input[name=coordinates]').val(marker.getPosition()); 
      J('input[name=address]').val(''); 
     }); 

     J('input[name=address]').val(results[0].formatted_address); 
    } 
}); 
+0

嗯,有大量的代码,我不知道作什么岗位.. ..正如我指出的,相同的JavaScript在另一个页面上工作。 也许这是更好,如果你访问该网站? – user1771561

+0

是的,我明白了,但不过,看看网站是如何建立起来的,可能会有帮助。我在我的文章中添加了一些javascript。 – user1771561

+0

不幸的是,我粘贴了一个编辑过的部分。这些设置始终处于真实状态。奇怪的是,如果我将'可点击'和'可拖动'设置为'真',那么点击事件也不起作用。 – user1771561

回答

0

试试这个:

map.setOptions({draggable: true});