У меня есть некоторый баг, который я убираю скриптом. Я отключаю клавишу пробел, когда меню открыто, потому что в момент нажатия, фокус падает на button и не убирается по клику вне его, из-за чего при нажатии клавиши пробел происходит выполнение функции (classList.toggle();). В меню есть textarea, я незнаю как правильно написать условие, чтобы при открытом меню НЕ срабатывало нажатие пробела (работает) и срабатывало нажатие пробела, если фокус на textarea находящийся в меню. Вот.
Вот рабочий код, не хватает только проверки фокуса:
btn.addEventListener('click', function(e){
menu.classList.toggle('is-open');
addEventListener('keydown', function(e){
if((menu.classList == 'menu is-open') && (e.keyCode == 32)){
e.preventDefault();
}
})
items.onclick = function(e){
e.stopPropagation();
}
})
upd: Кстати если кто-то не понимает (вдруг), как это нажимая на пробел выполнять функцию при фокусе на кнопке - >
https://learn.javascript.ru/focus-blur пролистайте до конца и нажмите на кнопку "Решение". Потом балуйтесь клавишей пробел