как «отключить» функцию javascript после однократного запуска

Таким образом, у меня есть две кнопки HTML, каждая из которых выполняет свою функцию (обе функции ниже). По сути, вы нажимаете одну из двух кнопок, чтобы добавить на карту список действий Google Maps. Я успешно получил это на работу. Единственная проблема заключается в том, что я хочу, чтобы actionlistener был доступен одним кликом. После этого одного клика я хочу, чтобы пользователь нажал другую кнопку, прежде чем actionlistener снова «прослушивает». Я надеюсь, что в этом есть смысл.

    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);
});
};

Так что я просто попробовал это:

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");
   }
 };

и это не сработало ..... Пожалуйста, направьте меня в правильном направлении ... (Кстати, кнопка передала "true" в setBoolean ".

Это работает, чтобы отключить все actionlisteners после первого щелчка. Но он не сбрасывается после повторного нажатия кнопки.

    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");
                }
        });
    }
}

Ответы на вопрос(3)

Ваш ответ на вопрос