2012-10-24 79 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});