Ух.. Код немного избыточен.
Как я понял, у вас есть кнопка, которая открывает меню. Необходимо по клику открывать меню, блокировать скролл документа, плюс чтобы темнел фон. А при клике вне объекта меню - закрывалось меню, исчезал фон, скролл появлялся.
1. Как заблокировать скролл? Вешать на body - overflow: hidden при клике на кнопку.
2. Закрытие при клике вне меню. (загуглил, автор
https://misha.agency/javascript/klik-vne-elementa.html)
jQuery(function($){
$(document).mouseup( function(e){ // событие клика по веб-документу
var div = $( "#popup" ); // тут указываем ID элемента
if ( !div.is(e.target) // если клик был не по нашему блоку
&& div.has(e.target).length === 0 ) { // и не по его дочерним элементам
div.hide(); // скрываем его
}
});
});