Yes, you can just use removeEventListener
function startTimer() {
// whatever code
// Disable after use
startButton.removeEventListern("click", startTimer);
}
startButton.addEventListener("click", startTimer);
// Reset listener after stop button clicked
stopButton.addEventListener("click", () => {
startButton.removeEventListener("click", startTimer);
startButton.addEventListener("click", startTimer);
});
Can also simplify with shorthand:
const disableBtn = () => startButton.removeEventListener("click", startTimer);
const enableBtn = () => (disableBtn(), startButton.addEventListener("click", startTimer));
function startTimer() {
// whatever code
disableBtn();
}
enableBtn();
stopButton.addEventListner("click", enableBtn);