最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - dragend event listener not firing in Google Maps API v3? - Stack Overflow

programmeradmin3浏览0评论

It won't even log to the console. I'm not sure what's going on here:

var mapOptions = {
  zoom: 5,
  center: new google.maps.LatLng(-41.2, 173.3),
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  streetViewControl: false
}

var homeMarker = new google.maps.Marker();

var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

google.maps.event.addListener(map, "click", function(event) {
// If the marker already exists, set it's position to null
    if (homeMarker) {
        homeMarker.setPosition(null);
    }

// Instantiate the marker again
  homeMarker = new google.maps.Marker({
    position: event.latLng,
    map: map,
    title: 'Your Home Location',
    draggable: true 
  });

// Set the input fields to the latitude and longitude
    var latitude = event.latLng.lat();
    var longitude = event.latLng.lng();

    $('input#homeLat').val(latitude.toFixed(6));
    $('input#homeLong').val(longitude.toFixed(6));
 }); 

// What is wrong here?
google.maps.event.addListener(homeMarker, "dragend", function(event) {
 console.log('foo');        
});

Basically, what is meant to happen is that I want to fetch the coordinates from the new position of the marker, which can be changed via a click on the map and a drag of the marker itself. I've got the former working, but my eventListener for dragend doesn't seem to be firing at all. Any ideas?

It won't even log to the console. I'm not sure what's going on here:

var mapOptions = {
  zoom: 5,
  center: new google.maps.LatLng(-41.2, 173.3),
  mapTypeId: google.maps.MapTypeId.ROADMAP,
  streetViewControl: false
}

var homeMarker = new google.maps.Marker();

var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

google.maps.event.addListener(map, "click", function(event) {
// If the marker already exists, set it's position to null
    if (homeMarker) {
        homeMarker.setPosition(null);
    }

// Instantiate the marker again
  homeMarker = new google.maps.Marker({
    position: event.latLng,
    map: map,
    title: 'Your Home Location',
    draggable: true 
  });

// Set the input fields to the latitude and longitude
    var latitude = event.latLng.lat();
    var longitude = event.latLng.lng();

    $('input#homeLat').val(latitude.toFixed(6));
    $('input#homeLong').val(longitude.toFixed(6));
 }); 

// What is wrong here?
google.maps.event.addListener(homeMarker, "dragend", function(event) {
 console.log('foo');        
});

Basically, what is meant to happen is that I want to fetch the coordinates from the new position of the marker, which can be changed via a click on the map and a drag of the marker itself. I've got the former working, but my eventListener for dragend doesn't seem to be firing at all. Any ideas?

Share Improve this question asked Sep 9, 2013 at 8:37 marked-downmarked-down 10.4k22 gold badges93 silver badges153 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 8

Alert while dragging, same code works for me. getPosition() helps to get the current marker position

Try this,

google.maps.event.addListener(homeMarker, "dragend", function(event) {
     alert('map dragged');
     homeMarker.getPosition();
});
发布评论

评论列表(0)

  1. 暂无评论