Меню на JS и jquery

Есть меню на JS, необходимо чтобы при клике на пункт меню разворачивалось подменю, на заднем фоне появлялось затемнение, при клике на любой другой пункт меню нужно чтобы закрывался открытый пункт и открывался новый. При этом затемнение не исчезало вот код

Сейчас работает в два клика, тоесть если меню открыто, при нажатии на другой пункт меню сначала закрывается открытый, а со вторым кликом открывается открывается новый, необходимо сделать чтобы новое меню открывалось в один клик

<div id="ms-sticky-menu">
<div class="ms-row">
<div class="ms-menu">
    <div class="row">
                        <?php   
                        $modules =$helper->getModulesByPosition('mainmenu'); 
                        if( $modules ){
                                foreach ($modules as $module) { 
                                         echo $module; 
                                } 
                        }?>

    </div>
    <div class="fs-block" id="msm"></div>
    
</div>

<div class="ms-search" id="sebox">


    <div id="search" class="sb-search ">
<div class="search-overl"></div>
        <input class="sb-search-input " placeholder="<?php echo $text_search; ?>" type="text" value="<?php echo $search; ?>" name="search" autocomplete="off" />
        <span class="sb-clear sb-clear-sb">+</span>
        <span class="sb-icon-search">-</span>
    <span class="sb-button-search">-</span>

    </div>
    </div>    
</div>
$('#mainmega > li > a.sub_child').on('click', function () {

        $(this).toggleClass('active');

});
    
$("#mainmega").mouseleave(function() {
    $('#mainmega > li > a').removeClass('active');
    $('#mainmega .dropdown-menu').hide();
});


$("#megamenu .navbar-nav > li").hover(
    function () {
        $(this).next('.sub_menu_default').slideDown();
    },
    function () {
        $(this).parent().mouseleave(function() {
        $(this).find('.sub_menu_default').hide();
    });

  });

$('#mainmega .darkover').on('click', function () {
      $("#mainmega > li > a").removeClass('active');
});

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