我的地图中有一个可拖动的标记。我在draggableMarker()函数中创建了这个可拖动的地图。当我拖动此标记时,它将生成一个jquery帖子来检查标记是否在数据库中。如果可用,则此标记必须返回其原始位置。这里我所做的是如果marker在数据库中然后是setMap(null)并再次调用draggableMarker()函数,该函数工作正常,但是当我再次尝试拖动此标记时,此jquery帖子无法正常工作。
这是我在代码中尝试过的。
function initialize() {
myMap = new google.maps.Map(document.getElementById('map-single'), {
zoom: 12,
center: {lat: parseFloat($('#mun_lat').val()), lng: parseFloat($('#mun_lon').val())},
mapTypeControlOptions: {
mapTypeIds: google.maps.MapTypeId.ROADMAP
}
});
draggableMarker();
function draggableMarker(){
current = new google.maps.Marker({
map: myMap,
draggable: true,
icon: com,
animation: google.maps.Animation.DROP,
position: {lat: parseFloat($('#lat').val()), lng: parseFloat($('#lat2').val())},
});
}
google.maps.event.addListener(current,'dragend',function(event)
{
$('#curs1').val(current.position.lng());
$('#curs2').val(current.position.lat());
$.post("checkAvailable.php",
{
lon: current.position.lng(),
lat: current.position.lat()
},
function(data){
current.setMap(null);
draggableMarker();
}
}, 'json');
});
}
任何人都能帮我解决我做错了什么。提前谢谢。
答案 0 :(得分:0)
您无法通过以下功能分配您的Google活动:
function assignedEvent(){
google.maps.event.addListener(current,'dragend',function(event) {
$('#curs1').val(current.position.lng());
$('#curs2').val(current.position.lat());
$.post("checkAvailable.php", {
lon: current.position.lng(),
lat: current.position.lat()
}, function(data) {
current.setMap(null);
draggableMarker();
assignedEvent()//Here you assign the event to the marker again
}
}, 'json');
});
}
收到Ajax回复后,新地图标记不再考虑该事件。你必须像这样重新分配
M_PI
答案 1 :(得分:0)
google.maps.event.addListener(current,'dragend',function(event) {
$('#curs1').val(current.position.lng());
$('#curs2').val(current.position.lat());
$.post("checkAvailable.php", {
lon: current.position.lng(),
lat: current.position.lat()
}, function(data) {
current.setMap(null);
draggableMarker();
google.maps.event.addListener(current,'dragend',function(event) {
$('#curs1').val(current.position.lng());
$('#curs2').val(current.position.lat());
$.post("checkAvailable.php", {
lon: current.position.lng(),
lat: current.position.lat()
}, function(data) {
current.setMap(null);
draggableMarker();
}
}, 'json');
});
}
}, 'json');
});