【问题标题】:jQuery adding active class to nav, now nav not workingjQuery向导航添加活动类,现在导航不起作用
【发布时间】:2013-12-17 20:08:26
【问题描述】:

所以,我希望我的面包屑导航通过根据用户所在的页面使用不同的颜色来向用户显示他/她所在的页面。 IE。如果在 home 上,则 home 链接是灰色的,而其他链接保持黑色。

为此,我在我的应用中添加了以下代码:

$(function(){

    $('.breadcrumb li a').on('click', function(e){

        e.preventDefault(); // prevent link click if necessary?

        var $thisA = $(this);
        var $li = $thisA.parent('a');

        if (!$thisA.hasClass('active'))
        {
            $li.find('a.active').removeClass('active');
                $thisA.addClass('active');
        }

    })

})

但是,使用上面的代码,当我还单击事件时,它永远不会释放活动类,例如它们最终都是灰色的。此外,页面不会切换,它会停留在主页上,但主页和事件是灰色的。

css:

.breadcrumb li a.active {    color: #999999;}

html

 <ul class="breadcrumb">
     <li>
       <a class="active" href="/profiles"> Home</a>
     </li>
     <li>
       <a class="active" href="/events"> Events</a>
     </li>
     <li>
       <a href="/inbox"> Messages</a>
     </li>
     <li>
       <a href="/welcome"> My Profile</a>
     </li>
   </ul>

【问题讨论】:

标签: javascript jquery css ruby-on-rails ruby-on-rails-4


【解决方案1】:

改变

var $li = $thisA.parent('a');

var $li = $thisA.parents('ul');

因为这条线

 $li.find('a.active').removeClass('active');

查找子 a.active 并且您的原始 $li 将为空,因为您的原始行试图找到一个 a,它是被点击的 a 的父级。

编辑

关于突出显示当前页面的资源:

http://hicksdesign.co.uk/journal/highlighting-current-page-with-css

$("a[href*='" + location.pathname + "']").addClass("current"); 来自highlighting the current page in a list of links using css / html

http://www.eznetu.com/current-link.html#

【讨论】:

  • 非常感谢@TreeTree,太完美了。现在唯一的事情是页面没有切换,当我删除 event.preventDefault 时,活动类不会停留在 上,直到我释放点击?但是当我保留 event.preventDefault 时,活动类仍然存在,但页面没有切换..
  • @SonnyBlack 您正在寻找的东西不可能按照您的方式进行。您需要做的是在页面加载后检测您所在的页面,然后将类添加到正确的菜单项。页面检测是棘手的部分,有很多方法可以解决它,具体取决于您的页面 HTML 提供的信息。
  • 我对 jQuery 比较陌生,你介意提供一个例子吗?我会接受你的回答吗?
  • @SonnyBlack 老实说,这种类型的问题并不是最方便提供工作示例的,因为它涉及实际迷你网站上的多个页面。我已经发布了一些链接来演示如何做到这一点。
猜你喜欢
  • 2020-07-17
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-26
  • 2018-08-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多