Wie man die Javascript-Funktion deaktiviert, nachdem man sie einmal ausgeführt hat

Ich habe also zwei HTML-Schaltflächen, die jeweils eine andere Funktion ausführen (beide Funktionen sind unten aufgeführt). Grundsätzlich klicken Sie auf eine der beiden Schaltflächen, um der Karte einen Google Maps-Aktionslistener hinzuzufügen. Ich habe es erfolgreich zum Laufen gebracht. Das einzige Problem ist, dass der Actionlistener nur mit einem Klick verfügbar sein soll. Nach diesem einen Klick soll der Benutzer auf eine andere Schaltfläche klicken müssen, bevor der Actionlistener wieder "lauscht". Ich hoffe das ergibt Sinn.

    function addLaunch() {
google.maps.event.addListener(map, "click", function(event) {
    marker = new google.maps.Marker({
      position: event.latLng,
      map: map

    });
    infowindow.open(map, marker);
});
};
function addFishing() {  
google.maps.event.addListener(map, "click", function(event) {
    marker = new google.maps.Marker({
      position: event.latLng,
      map: map
    });
    fishinfowindow.open(map, marker);
});
};

Also habe ich es einfach versucht:

function addLaunch(setBoolean) {
var clicked = new Boolean(false);
    clicked.boolValue = setBoolean;
if (clicked = true) {
google.maps.event.addListener(map, "click", function(event) {
    marker = new google.maps.Marker({
      position: event.latLng,
      map: map

        });
        infowindow.open(map, marker);
        clicked.boolValue = false;
    });
   }
   else {
   google.maps.event.clearListeners(map, "click");
   }
 };

und es hat nicht funktioniert ..... Bitte weise mich in die richtige Richtung ... (Übrigens, der Button wurde an den 'setBoolean' "true" übergeben

Dies funktioniert, um alle Aktionslistener nach dem ersten Klick zu deaktivieren. Es wird jedoch nicht zurückgesetzt, nachdem die Schaltfläche erneut angeklickt wurde.

    var temp = true;
function addLaunch() {
    if (temp == true) {
        google.maps.event.addListener(map, "click", function(event) {
    marker = new google.maps.Marker({
      position: event.latLng,
      map: map

        });
infowindow.open(map, marker);
        temp = false;
        if (temp == false) {
        google.maps.event.clearListeners(map, "click");
                }
        });
    }
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage