Javascript dragend、dragstart和;未捕获类型错误:无法读取属性'_e3“;错误
我尝试创建的是一个“单击”事件,用户可以在地图上放置一个标记,如果用户想要更改标记位置,用户可以将标记拖动到他们想要的位置。但是dragstart和dragend没有这个技巧,我不明白为什么 “UncaughtTypeError:Cannotreadproperty'\uE3'of undefined”错误在我的错误日志中,我尝试了几种方法来解决它,但仍然无法。。。。伙计们知道怎么解决吗?谢谢你的帮助Javascript dragend、dragstart和;未捕获类型错误:无法读取属性'_e3“;错误,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我尝试创建的是一个“单击”事件,用户可以在地图上放置一个标记,如果用户想要更改标记位置,用户可以将标记拖动到他们想要的位置。但是dragstart和dragend没有这个技巧,我不明白为什么 “UncaughtTypeError:Cannotreadproperty'\uE3'of undefined”错误在我的错误日志中,我尝试了几种方法来解决它,但仍然无法。。。。伙计们知道怎么解决吗?谢谢你的帮助 <script type="text/javascript"> var map;
<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>
var映射;
var地理编码器;
var标记;
var映射选项
函数初始化(){
映射选项={
中心:新google.maps.LatLng(3.1597101.7000),
缩放:12,
disableDefaultUI:true,
mapTypeId:google.maps.mapTypeId.ROADMAP,
mapTypeControl:true,
mapTypeControlOptions:{
样式:google.maps.MapTypeControlStyle.DROPDOWN_菜单,
位置:google.maps.ControlPosition.TOP_左
},
};
map=new google.maps.map(document.getElementById(“地图画布”),
地图选项);
geocoder=新的google.maps.geocoder();
google.maps.event.addListenerOnce(映射,'click',函数(事件){
地点标记(事件标记);
});
功能位置标记(位置){
marker=新的google.maps.marker({
位置:位置,,
地图:地图,
德拉格布尔:是的
});
}
google.maps.event.addListener(标记'dragstart',函数(evt){
document.getElementById('current').innerHTML='当前正在拖动标记…;
});
google.maps.event.addListener(标记'dragend',函数(evt){
document.getElementById('current').innerHTML='删除的标记:当前Lat:'+evt.latLng.Lat().toFixed(3)+'current Lng:'+evt.latLng.Lng().toFixed(3)+'';
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);
为了确认dragend和dragstart事件正在工作,我在html中添加了一个ID以显示最新的lat和lng
<div id="current">Nothing yet...</div>
还没有。。。
您应该将addListener
的两个调用移动到placeMarker
中,否则marker
在执行时是未定义的。可能重复*我使用dragend和dragstart的原因是从用户处获取最新的lat和lng,latlng将存储在数据库中刚刚删除旧线程,很抱歉给您带来不便