删除标记-谷歌地图Javascript API v3

删除标记-谷歌地图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

正在试用ThaMapsAPI。我被困在移除标记上。 添加标记非常有效,但删除不起作用。 你知道为什么这行不通吗?提前感谢

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。