我使用php从mySQL数据库中获取了多个标记,为每个标记生成以下代码:
var marker28= new google.maps.Marker({position:new google.maps.LatLng(64.2,11.4),map: map,draggable: true,icon: 'slayer.png',title: '#28 slayer (64.2, 11.4)'});
google.maps.event.addListener(marker28, 'dragend', markerMoved(marker28));
var marker25
....等
然后我有以下功能:
function markerMoved(movedMarker){
movedMarker.title = movedMarker.position;
}
我有以下两个问题:
1)事件“dragend”火没有拖动,当标记首次创建时,真的没什么大不了的,但是......
2)新位置未更新,无论我在何处拖动标记,标题都设置为第一个初始位置。我尝试了getPosition()方法,结果相同。
我的想法是通过(async)GET请求将新位置从此函数写回mySql数据库,并将其写入文件track.php
答案 0 :(得分:7)
调用addListener时,第三个参数需要是一个函数。您正在调用函数的结果,因此无法正常工作。试试这样:
google.maps.event.addListener(marker28, 'dragend', function() { markerMoved(marker28); } );
有关详细信息,请查看API文档以了解使用closures in event listeners。