我想在用户拖动标记时提醒用户地图上的新位置。显然,当我拖动我的标记时,听众甚至不会触发。我希望我的用户能够选择将标记放在地图上并且还能够拖动它。单击并拖动地图的另一侧可以更改标记位置,但是当我尝试添加用于拖动地图的侦听器时,为了弹出菜单警报,它不起作用。感谢
var LatLng = new google.maps.LatLng(lat,lng);
var marker;
var mapOptions = {
center: LatLng,
zoom: 16,
minZoom:12,
maxZoom:18,
panControl:false,
scrollwheel: false,
rotateControl:false,
streetViewControl:false,
keyboardShortcuts:false,
mapTypeControl: false,
scaleControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var Gmap = new google.maps.Map($('#map_canvas').get(0),mapOptions);
// adding pointer by clicking on mac
google.maps.event.addListener(Gmap, 'click', function(e) {
if (marker) {
marker.setPosition(e.latLng);
}else{
marker = new google.maps.Marker({
position: e.latLng,
map: Gmap,
draggable:true
});
}
Gmap.panTo(marker.getPosition());
});
google.maps.event.addListener(marker, 'dragend', function() {
alert('Show something here');
});
答案 0 :(得分:2)
侦听器无法正常工作,因为在定义侦听器时,标记未定义。您需要将其放在定义标记的功能块中:
google.maps.event.addListener(Gmap, 'click', function(e) {
if (marker) {
marker.setPosition(e.latLng);
} else {
marker = new google.maps.Marker({
position: e.latLng,
map: Gmap,
draggable:true
});
google.maps.event.addListener(marker, 'dragend', function() {
alert('Show something here');
});
}
Gmap.panTo(marker.getPosition());
});
在行动right here中查看。
答案 1 :(得分:0)
google.maps.event.addListener(marker, 'dragend', function () {
updateMarkerStatus('Drag ended');
geocodePosition(marker.getPosition());
alert('Show something here');
});
您还可以使用firefox在您的javascript中添加“Break”,以便您可以查看是否已触发javascript函数。有关的信息可以在here
找到