Отмена действия при повторном нажатии

Как отменить действие при повторном нажатии?

document.querySelector(".menu").onclick = function() {
  document.body.style.overflow = 'hidden';
}

Ответы (3 шт):

Автор решения: Проста Miha

Вот вам решение )
Данным способом вы сможете нажать на элемент только один раз до перезагрузки страницы

document.querySelector(".menu").addEventListener("click", function() {
  console.log(1);
  document.body.style.overflow = 'hidden';
}, {once: true});
<div class="menu">1234567890</div>

→ Ссылка
Автор решения: Pashok

Если необходимо именно повторно кликать для вызова действия (отмены) чего-либо, можно сделать так.

var flag = false;
document.querySelector(".menu").onclick = function() {
  document.body.style.overflow = 'hidden';
  flag = true;
}
if(flag){
  //Код. Например
  document.body.style.overflow = 'auto';
}
→ Ссылка
Автор решения: Zoodogood

Если конкретно с Вашим примером При каждом клике проверяем текущее значение style.overflow Если оно не равно hidden, установить hidden, иначе auto

document.querySelector(".menu").onclick = function() {
  const target = document.body.style;
  target.overflow = target.overflow !== "hidden" ? "hidden" : "auto";
}

Вместо Условного оператора можете использовать что-то подобное:

if (document.body.style.overflow === "hidden")
  document.body.style.overflow = "auto";
else
  document.body.style.overflow = "hidden";
→ Ссылка