如何切换活动链接?

时间:2014-07-20 17:02:31

标签: javascript jquery twitter-bootstrap symfony

我正在使用symfony2(MVC框架)和Twitter Bootstrap v3.0.0。我每次点击链接时都试图切换class"active"。我尝试了很多jquery解决方案,最好的解决方案是不加载页面。这是我的HTML代码:

<header class="navbar navbar-inverse navbar-fixed-top wet-asphalt" role="banner">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="index.html"><img src="images/logo.png" alt="logo"></a>
        </div>
        <div class="collapse navbar-collapse">
            <ul class="nav navbar-nav navbar-right">
                <li class="active"><a href="{{ path('portofolio_front_homepage') }}">Accueil</a></li>
                <li><a href="{{ path('portofolio_front_about') }}">A propos</a></li>
                <li><a href="{{ path('portofolio_front_projects') }}">Portfolio</a></li>                        
                <li><a href="{{ path('portofolio_front_blog') }}">Blog</a></li>                        
                <li><a href="{{ path('portofolio_front_contact')}}">Contact</a></li>
            </ul>
        </div>
    </div>
</header><!--/header-->   

Jquery代码:

 <script type="text/javascript">
            $(document).ready(function() {
                $('ul.nav > li').click(function(e) {
                    e.preventDefault();
                    $('ul.nav > li').removeClass('active');
                    $(this).addClass('active');
                });
            });
        </script>

我该怎么做?

2 个答案:

答案 0 :(得分:1)

当您不提供JS时,不容易“修复”您的代码。 应该像这样:

$('.navbar-nav li a').on('click', function() {
    $('.navbar-nav li').removeClass('active');
    $(this).parent('li').addClass('active');
});

<强>示例
http://jsfiddle.net/a3yFh/

答案 1 :(得分:0)

如果您只想将活动类设置为打开的链接,则可以执行以下操作:

{% set page_route = app.request.attributes.get('_route') %}

<ul class="nav navbar-nav navbar-right">
    <li {% if page_route == 'portofolio_front_homepage' %}class="active"{% endif %}><a href="{{ path('portofolio_front_homepage') }}">Accueil</a></li>
    <li {% if page_route == 'portofolio_front_about' %}class="active"{% endif %}><a href="{{ path('portofolio_front_about') }}">A propos</a></li>
    <li {% if page_route == 'portofolio_front_projects' %}class="active"{% endif %}><a href="{{ path('portofolio_front_projects') }}">Portfolio</a></li>                        
    <li {% if page_route == 'portofolio_front_blog' %}class="active"{% endif %}><a href="{{ path('portofolio_front_blog') }}">Blog</a></li>                        
    <li {% if page_route == 'portofolio_front_contact' %}class="active"{% endif %}><a href="{{ path('portofolio_front_contact')}}">Contact</a></li>
</ul>