Настройка плагинов Superfish - добавление «текущего» класса к родительскому элементу li - PullRequest
0 голосов
/ 25 июля 2011

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

Проблема, с которой я столкнулся, заключается в том, что указанное программное обеспечение будет применять только один активный класс (к любой странице / элементу, активному в данный момент) - если я на странице второго уровня и мне нужно применить один к родителю. Тег

, чтобы меню оставалось открытым. Я не хочу взламывать ядро ​​по понятным причинам, поэтому мне интересно, могу ли я использовать Jquery для применения некоторой простой магии.

Есть ли способ нацеливания на родительский элемент li в списке, который содержит class = 'active'? (а не если я только на странице верхнего уровня, так что не нужно проходить вверх)

Например, код, который генерирует программа, выглядит так:

<ul>
   <li><a href="#">First level</a>
     <ul>
         <li class="active"><a href="#">Second 1</li>
         <li><a href="#">Second 2</li>
         <li><a href="#">Second 3</li>
      </ul>
   </li>
</ul>

Мне нужно применить еще один class = "active" к верхнему уровню <li>, так как он является родителем активного узла.

Имеет ли это смысл?

1 Ответ

0 голосов
/ 25 июля 2011

Попробуйте это

var $this;
$("ul > li").each(function(){
    $this = $(this);

    if($this.find("> li.active").length)
      $this.addClass("active");
}
...