Отмена действия при повторном нажатии
Как отменить действие при повторном нажатии?
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";