Javascript 谷歌地图API-有没有一种方法可以在下一次单击时反转侦听器?

Javascript 谷歌地图API-有没有一种方法可以在下一次单击时反转侦听器?,javascript,html,google-maps,listener,Javascript,Html,Google Maps,Listener,我有一个功能,允许我点击一个标记,它为我提供了一个信息框和另一个标记 function addMarker(props){ var marker = new google.maps.Marker({ position:props.coords, map: map, icon:props.iconImage });

我有一个功能,允许我点击一个标记,它为我提供了一个信息框和另一个标记

function addMarker(props){
                var marker = new google.maps.Marker({
                    position:props.coords,
                    map: map,
                    icon:props.iconImage
                });

                if(props.content){
                    var infoWindow = new google.maps.InfoWindow({
                      content:props.content
                    });

                    marker.addListener('click', function () {
                        infoWindow.open(map, marker);
                    });
                    marker.addListener('click', function () {
                        addMarker({
                        coords:{lat: 59.896874,lng: -5.125914},
                        iconImage:'pointer12s.png',
                        content:'<h1>destination</h1>'                
                        }); 
                    });
                  
                }

            }

但我不确定是将其放入同一个函数还是使用不同的函数?

一个选项是保留对添加的标记的引用。如果尚未添加该标记,请创建该标记,如果该标记已存在,请隐藏它并调用setMapnull,然后将其设置为null。删除标记时关闭信息窗口

  var addedMarker;
  function addMarker(props) {
    var marker = new google.maps.Marker({
      position: props.coords,
      map: map,
      icon: props.iconImage
    });

    if (props.content) {
      var infoWindow = new google.maps.InfoWindow({
        content: props.content
      });
      marker.infowindow = infoWindow;
      marker.addListener('click', function() {
        infoWindow.open(map, marker);
      });
      marker.addListener('click', function() {
        if (!addedMarker || !addedMarker.setMap) {
        addedMarker = addMarker({
          coords: {
            lat: 59.896874,
            lng: -5.125914
          },
          // iconImage: 'pointer12s.png',
          content: '<h1>destination</h1>'
        });
        } else {
          this.infowindow.close();
          addedMarker.setMap(null);
          addedMarker = null;
        }
      });
    }
    return marker;
  }

简单标记
  var addedMarker;
  function addMarker(props) {
    var marker = new google.maps.Marker({
      position: props.coords,
      map: map,
      icon: props.iconImage
    });

    if (props.content) {
      var infoWindow = new google.maps.InfoWindow({
        content: props.content
      });
      marker.infowindow = infoWindow;
      marker.addListener('click', function() {
        infoWindow.open(map, marker);
      });
      marker.addListener('click', function() {
        if (!addedMarker || !addedMarker.setMap) {
        addedMarker = addMarker({
          coords: {
            lat: 59.896874,
            lng: -5.125914
          },
          // iconImage: 'pointer12s.png',
          content: '<h1>destination</h1>'
        });
        } else {
          this.infowindow.close();
          addedMarker.setMap(null);
          addedMarker = null;
        }
      });
    }
    return marker;
  }