Закрытие aria-hidden при клике вне дочернего елемента

Есть выпадающее меню, реализовано таким образом (один из пунктов меню):

<li>
<a role="button" id="menu_catalog" href="#mobile_catalog" aria-haspopup="true" aria-controls="mobile_catalog" aria-expanded="false">Родитель <i class="fas fa-chevron-down"></i></a>
<ul id="mobile_catalog" role="menu" aria-hidden="true" aria-labelledby="menu_catalog" class="ontop  drop-men">
        <ul class="hidden-phone" style="padding-left: 30px;margin-bottom: 0!important;">
            <li><a href="/url">Дочерний 1</a></li>
            <li><a href="/url">Дочерний 2</a></li>
            <li><a href="/url">Дочерний 3</a></li>
        </ul>    
    </ul>
</li>

И получается при клике на стрелку <i class="fas fa-chevron-down"></i> открывается и закрывается, как сделать чтобы закрывалось при клике ВНЕ <ul id="mobile_catalog">?

CSS

    ul#mobile_catalog li:last-child {
        padding-bottom: 0;
    }
    ul#mobile_catalog {
        column-count: 3;
        max-width: 1100px;
        overflow: visible;
    }
    #mobile_catalog li.closer {
        text-align: center;
        margin-bottom: 8px;
        padding: 12px 0;
        cursor: pointer;
    }
    ul#mobile_catalog li {
        margin: 0;
        padding: 0;
    }
    ul#mobile_catalog>li:last-child a {
        color: #fff;
        font-weight: 400;
        
    }
    ul#mobile_catalog>li:last-child {
        border: 0;
        background: #000;
        display: inline-block;
        padding: 5px 20px;
        float: right;
        margin-top: 30px;
    }
    ul#mobile_catalog {
        padding: 20px;
    }
    ul#mobile_catalog>li {
        border-left: 2px solid #ffd060;
        margin: 0;
        padding-left: 30px;
        margin-bottom: 20px!important;
        display: block;
        padding-top: 0;
        padding-bottom: 0;
    }
[aria-expanded=true] .fa-chevron-down:before { content: "\f077";}
#menu_catalog i { font-size: inherit; padding-left: 4px }
#mobile_catalog a { text-transform: none; font-size: 18px }
#mobile_catalog { height: 100%; background: #fff; margin: 0; padding: 16px; overflow: scroll }
#mobile_catalog li { list-style: none; margin-bottom: 1px; background: #f5f5f5; padding: 16px 0 16px 32px }
#mobile_catalog li.closer { text-align: center; margin-bottom: 8px; padding: 12px 0; cursor: pointer; }
#mobile_catalog li.closer i { font-size: 20px }

И обрабатывается это все дело вот этим js (наверное)

let expanders = document.querySelectorAll('[aria-haspopup]');
for (i=0; i<expanders.length;i++) {
  expanders[i].addEventListener('click',expand_generators(expanders[i])); 

}
let closers = document.querySelectorAll('.closer');
for (i=0; i<closers.length;i++) {
  closers[i].addEventListener('click',close_generators(closers[i])); 
}

Заранее спасибо за ответ.


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