使菜单按钮突出显示

时间:2013-08-03 22:49:33

标签: jquery

我正在使用此示例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还不是很好,所以我不确定还有什么要添加/删除所以只有'a'标签突出显示而不是'li'标签

2 个答案:

答案 0 :(得分:1)

这是一个工作小提琴,突出显示a elements而不是li elementsFiddle

我做的是

  • 更改了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");
    

答案 1 :(得分:0)

您的result on JSFiddle

.parent()出现了错误(第42-43行)。

我还调整了HTML标记以对应:

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

和CSS:

//#top-menu li.active a {
#top-menu li a.active {