删除标记-谷歌地图Javascript API v3
正在试用ThaMapsAPI。我被困在移除标记上。 添加标记非常有效,但删除不起作用。 你知道为什么这行不通吗?提前感谢删除标记-谷歌地图Javascript API v3,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,正在试用ThaMapsAPI。我被困在移除标记上。 添加标记非常有效,但删除不起作用。 你知道为什么这行不通吗?提前感谢 function placeMarker(event) { var marker = new google.maps.Marker({ clickable: true, position: event.latLng, map: map }); } function deleteMarker() { mark
function placeMarker(event) {
var marker = new google.maps.Marker({
clickable: true,
position: event.latLng,
map: map
});
}
function deleteMarker() {
marker.setMap(null);
marker = null;
}
function initialize() {
var mapOptions = {
zoom: 8,
center: home
};
map = new google.maps.Map(document.getElementById('map-canvas'),
mapOptions);
google.maps.event.addListener(map,'rightclick', placeMarker);
google.maps.event.addListener(marker,'click', deleteMarker);
}
google.maps.event.addDomListener(window, 'load', initialize);
定义全局变量
var map,
marker,
home = new google.maps.LatLng(46.5, 13.5);
结果显示错误消息:
Uncaught TypeError: Cannot read property '__e3_' of undefined main.js:15
从线路
google.maps.event.addListener(marker, 'click', deleteMarker);
标记
仍然是未定义的
,因为它未创建,并且无法将事件侦听器附加到它。该行必须移动到placeMarker()
函数:
function placeMarker(event) {
marker = new google.maps.Marker({
clickable: true,
position: event.latLng,
map: map
});
google.maps.event.addListener(marker, 'click', deleteMarker);
}
请参阅。标记是placeMarker函数的本地标记,无法在deleteMarker中访问。考虑过这一点,但是否应该通过侦听器访问它?如果我让它全球化,它不会改变任何事情。尝试在deleteMarker函数中放置一个alert(),以测试它是否被执行,但这也没有发生。难道没有出现明显的javascript错误,比如“marker未定义”?您可以使用“this”访问单击的think。