как при наведении на элемент меню или выпадающего списка этого меню изменить класс родителя меню?

если курсор находится на #categories или выпадающем меню .sub-menu то нужно удалить класс sticky , а если увели курсор то вернуть обратно

<div id="sticky" class="site-header sticky">
    <ul>
        <li id="categories">
            <ul class="sub-menu">
                <li>
                    <a href="">1</a>
                </li>
                <li>
                    <a href="">2</a>
                </li>
            </ul>
        </li>
    </ul>
</div>

$( "#categories" ).mouseover(function() {
            $( "#sticky" ).removeClass('sticky');

        });


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

Автор решения: Dzorogh

$("#categories").on('mouseenter', function() {
  $("#sticky").removeClass('sticky');
});

$("#categories").on('mouseleave', function() {
  $("#sticky").addClass('sticky');
});

/* Более короткий вариант, но в теории -- менее надежный 

$( "#categories" ).on('mouseenter mouseleave',      function() {
  $( "#sticky" ).toggleClass('sticky');
});

*/
.sticky {
  /* для демонстрации */
  background: #ccc;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="sticky" class="site-header sticky">
  <ul>
    <li id="categories">
      <ul class="sub-menu">
        <li>
          <a href="">1</a>
        </li>
        <li>
          <a href="">2</a>
        </li>
      </ul>
    </li>
  </ul>
</div>

→ Ссылка