0

私は、階層的にネストされた一連のリストを吐き出すソフトウェアを使用してサイトを構築しています。これは、superfish jquery プラグインを使用してドロップダウン メニューに変換しています。

私が抱えている問題は、ソフトウェアがアクティブなクラスを 1 つだけ適用するということです (その時点でアクティブなページ/要素に) - 第 2 レベルのページにいて、親に 1 つを適用する必要がある場合

  • メニューを開いたままにするために、タグも付けます。明らかな理由でコアをハックしたくないので、Jquery を使用して単純な魔法を適用できるかどうか疑問に思っています。

    class='active' を含むリストの親 li 要素をターゲットにする方法はありますか? (そして、私がトップレベルのページだけにいる場合ではないので、上にトラバースする必要はありません)

    たとえば、ソフトウェアが生成するコードは次のようになります。

    <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>
    

    <li>アクティブなノードの親であるため、別の class="active" をトップレベルにも適用する必要があります。

    それは理にかなっていますか?

  • 4

    1 に答える 1

    0

    これを試して

    var $this;
    $("ul > li").each(function(){
        $this = $(this);
    
        if($this.find("> li.active").length)
          $this.addClass("active");
    }
    
    于 2011-07-25T16:08:21.157 に答える