@Sashochek

Как оптимизировать этот JQ?

// sub menu lvl1 first 
  $('.sub-menu_wrapp.first .sub-menu_lvl1 li a').mouseenter(function () {
    $('.sub-menu_wrapp.first .sub-menu_lvl1 li a.active').removeClass("active");
    if ($(this).hasClass("active")) {
      $(this).removeClass("active");
    } else {
      $(this).addClass("active");
    }
  });
  // sub-menu lvl2
  $('.sub-menu_wrapp.first .sub-menu_lvl1 li a').mouseenter(function() {
    $('.sub-menu_wrapp.first .sub-menu_lvl2').removeClass('visible');
    $('.sub-menu_wrapp.first .sub-menu_lvl2.' + $(this).data('visible')).addClass('visible');
  });

  // sub menu lvl1 second 
  $('.sub-menu_wrapp.second .sub-menu_lvl1 li a').mouseenter(function () {
    $('.sub-menu_wrapp.second .sub-menu_lvl1 li a.active').removeClass("active");
    if ($(this).hasClass("active")) {
      $(this).removeClass("active");
    } else {
      $(this).addClass("active");
    }
  });
  // sub-menu lvl2
  $('.sub-menu_wrapp.second .sub-menu_lvl1 li a').mouseenter(function() {
    $('.sub-menu_wrapp.second .sub-menu_lvl2').removeClass('visible');
    $('.sub-menu_wrapp.second .sub-menu_lvl2.' + $(this).data('visible')).addClass('visible');
  });

// sub menu lvl1 third 
  $('.sub-menu_wrapp.third .sub-menu_lvl1 li a').mouseenter(function () {
    $('.sub-menu_wrapp.third .sub-menu_lvl1 li a.active').removeClass("active");
    if ($(this).hasClass("active")) {
      $(this).removeClass("active");
    } else {
      $(this).addClass("active");
    }
  });
  // sub-menu lvl2
  $('.sub-menu_wrapp.third .sub-menu_lvl1 li a').mouseenter(function() {
    $('.sub-menu_wrapp.third .sub-menu_lvl2').removeClass('visible');
    $('.sub-menu_wrapp.third .sub-menu_lvl2.' + $(this).data('visible')).addClass('visible');
  });

// sub menu lvl1 fourth 
  $('.sub-menu_wrapp.fourth .sub-menu_lvl1 li a').mouseenter(function () {
    $('.sub-menu_wrapp.fourth .sub-menu_lvl1 li a.active').removeClass("active");
    if ($(this).hasClass("active")) {
      $(this).removeClass("active");
    } else {
      $(this).addClass("active");
    }
  });
  // sub-menu lvl2
  $('.sub-menu_wrapp.fourth .sub-menu_lvl1 li a').mouseenter(function() {
    $('.sub-menu_wrapp.fourth .sub-menu_lvl2').removeClass('visible');
    $('.sub-menu_wrapp.fourth .sub-menu_lvl2.' + $(this).data('visible')).addClass('visible');
  });
  • Вопрос задан
  • 176 просмотров
Пригласить эксперта
Ответы на вопрос 1
Первое что увидел на замену это:
...
if ($(this).hasClass("active")) {
$(this).removeClass("active");
} else {
$(this).addClass("active");
}
...
можно ( IMHO нужно ) заменить на
...
$(this).toggleClass("active"))
...
Дальше не анализировал
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы