Закрытие SIDEMENU при щелчке за пределы менюJavascript

Форум по Javascript
Ответить
Anonymous
 Закрытие SIDEMENU при щелчке за пределы меню

Сообщение Anonymous »

Я не уверен, почему у меня всегда есть проблемы с этим, мой код, кажется, закрывает меню доли секунды, я нажимаю кнопку, чтобы открыть меню, и я не могу понять, как его остановить. < /p>
const MobileMenu = () => {
const { open, setOpen } = useContext(DataContext);
const menuItems = ["Login", "Store", "Community", "About", "Support"];

window.addEventListener("click", function (e) {
if (open && !this.document.getElementById("menu").contains(e.target)) {
e.stopPropagation();
setOpen(false);
}
});

return (

  • {menuItems.map((item) => (
  • {item}

    ))}

);
};
< /code>
Если я прокомментирую Window.addeventListener Block Я могу открыть меню. Однако возвращение блока кода вообще останавливает меню вообще. Он установлен так, что если открытое состояние верно, и вы нажимаете за пределы меню, то оно установит открытое состояние в False. Но кажется, что, когда открытое состояние неверно, и я нажимаю кнопку, чтобы открыть меню, что оно верно и устанавливает его обратно на ложь.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... e-the-menu
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»