0

この例http://jsfiddle.net/mekwall/up4nu/を使用して、ユーザーが下にスクロールしたときにメニュー リンクを強調表示します。問題は、例が「li」タグを強調表示していることですが、「a」タグのみを強調表示したいです。だから私はこのようにしてみました:

if (lastId !== id) {
           lastId = id;
           // Set/remove active class
           menuItems
             .removeClass("active")
             .end().filter("[href=#"+id+"]").addClass("active");
       } 

元のコードからparent()を削除しましたが、これでも私が望むものは達成されません。私はまだ jQuery にあまり慣れていないので、他に何を追加/削除すればよいかわかりません。そのため、「li」タグの代わりに「a」タグのみが強調表示されます

4

2 に答える 2

1

要素の代わりにa要素を強調表示する実用的なフィドルを次にli示します: Fiddle

私がしたことは

  • HTML を変更したため、デフォルトaで最初の要素ではなく、アクティブなクラスを持つ最初の要素です。li

    <a class="active" href="#">Top</a>

  • CSS を変更したため、ルール#top-menu li.active aが(要素
    #top-menu li a.activeに適用されるように) なりました。a

  • これらすべてで動作するように JavaScript を変更しました。

      menuItems
          .removeClass("active")
          .filter("[href=#"+id+"]").addClass("active");
    
于 2013-08-03T23:04:14.243 に答える
0

JSFiddleでの結果

(42~43行目)に誤りがありました.parent()

また、対応するように HTML マークアップを調整しました。

<li>
    <a href="#" class="active">Top</a>
</li>

およびCSS:

//#top-menu li.active a {
#top-menu li a.active {
于 2013-08-03T23:04:13.107 に答える