dragend,dragstart和“Uncaught TypeError:无法读取属性'_e3”错误

时间:2013-04-16 15:39:58

标签: javascript google-maps google-maps-api-3

我想要创建的是“点击”事件,用户可以在地图上放置标记,旁边如果用户想要更改标记位置,用户可以将标记拖动到他们想要的位置。但是,拖尾和戏剧不是诀窍,我无法弄明白为什么......

和“未捕获的TypeError:无法读取属性'_ e3 '未定义”错误在我的错误日志中,我已经尝试了几种方法来解决它但仍然无法设法...那么伙计们怎么解决它?感谢您的帮助

 <script type="text/javascript">
var map;
var geocoder;
var marker;
var mapOptions
function initialize() {
     mapOptions = {
      center: new google.maps.LatLng(3.1597,101.7000),
      zoom: 12,
      disableDefaultUI: true,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
       mapTypeControl: true,
    mapTypeControlOptions: {
    style: google.maps.MapTypeControlStyle.DROPDOWN_MENU,
    position: google.maps.ControlPosition.TOP_LEFT
          },
    };
     map = new google.maps.Map(document.getElementById("map-canvas"),
        mapOptions);
     geocoder = new google.maps.Geocoder();

      google.maps.event.addListenerOnce(map, 'click', function(event) {
            placeMarker(event.latLng);
          });
      function placeMarker(location) {
            marker = new google.maps.Marker({
            position: location,
            map: map,
            draggable:true
          });
        }
          google.maps.event.addListener(marker, 'dragstart', function(evt){
            document.getElementById('current').innerHTML = '<p>Currently dragging marker...</p>';
        });
        google.maps.event.addListener(marker, 'dragend', function(evt){
          document.getElementById('current').innerHTML = '<p>Marker dropped: Current Lat: ' + evt.latLng.lat().toFixed(3) + ' Current Lng: ' + evt.latLng.lng().toFixed(3) + '</p>';
      });



}
google.maps.event.addDomListener(window, "load", initialize);


</script>

为了确认dragend和dragstart事件是否有效我在我的html中添加了一个ID以显示最新的lat和lng

  <div id="current">Nothing yet...</div>

1 个答案:

答案 0 :(得分:0)

您应将addListener的两个调用移至placeMarker,否则marker在执行时未定义。