【问题标题】:how to change .active class in bootstrap using jquery如何使用 jquery 在引导程序中更改 .active 类
【发布时间】:2017-06-27 16:20:12
【问题描述】:

我正在使用 django,并尝试创建一个基本模板。我想更改指向单独链接的导航栏链接中的 .active 类, 例如。导航栏中的主页链接指向 home.html,导航栏中的 About Us 链接指向 about.html。

我也在 jquery 中使用了一个代码来做到这一点,但它不起作用。请提出任何方法来做到这一点。

请不要打扰我是新手!!!

<!DOCTYPE html>
<html>
<head>
    {% load staticfiles %}
    <meta charset="UTF-8">

    <title>{% block title %}{% endblock %} | Vasu Genset Pvt. Ltd.</title>

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

    <link rel="stylesheet" href="https://bootswatch.com/paper/bootstrap.min.css">

    <link rel="stylesheet" type="text/css" href="{% static 'index/css/index.css' %}">

    <link rel="stylesheet" href="{% static 'index/css/products-style.css' %}">

    {% block style %}{% endblock %}


</head>
<body>

    <nav class="navbar navbar-default">
        <div class="container">
            <div class="navbar-header">
                <a class="navbar-brand" href="/home/" >Vasu Genset Pvt. Ltd.</a>
                <button class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mydropdown">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
            </div>
            <div class="collapse navbar-collapse" id="mydropdown">
                <ul class="nav navbar-nav navbar-right" id="navbar-change">
                    <li class="active"><a href="/home/">Home</a></li>
                    <li><a href="/aboutus/">About Us</a></li>
                    <li class="dropdown">
                    <a href="/productsandservices/" class="dropdown-toggle" data-toggle="dropdown">Products & Services <span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            <li><a href="/generatorrepair/">Generator Repair</a></li>
                            <li><a href="/generatormaintenance/">Generator Maintenance</a></li>
                            <li><a href="/alternator/">Alternator Repair & Maintenance</a></li>
                            <li><a href="/amc/">AMC Service Provider</a></li>
                            <li><a href="/spareparts/">Spare Parts</a></li>
                            <li><a href="/generatorrentalhire/">Generator Rental & Hire</a></li>
                            <li><a href="/synchronizing/">Synchronizing Panel</a></li>
                            <li><a href="/amfpanel/">AMF Panel</a></li>
                            <li><a href="acousticenclosures">Acoustic Enclosures</a></li>
                        </ul>
                    </li>
                    <li><a href="/contactus/">Contact Us</a></li>
                </ul>
            </div>
        </div>
    </nav>

    {% block body %}
    {% endblock %}

    <footer class="text-center">
            <div class="container-fluid">
                <div class="row">
                    <div class="col-xs-offset-1 col-xs-10 col-md-offset-3 col-md-6">
                        <h4>Copyright &copy; Vasu Genset Pvt. Ltd.</h4>
                    </div>
                </div>
            </div>
    </footer>


</body>

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="{% static 'index/js/bootstrap.min.js' %}"></script>

    <script>
        $(document).ready(function () {
            $('.nav li').click(function(e) {

                $('.nav li').removeClass('active');

                var $this = $(this);
                if (!$this.hasClass('active')) {
                    $this.addClass('active');
                }
                //e.preventDefault();
            });
        });
    </script>



</html>

【问题讨论】:

标签: javascript jquery html twitter-bootstrap django-templates


【解决方案1】:

您的代码有效,但它会在 x-nested ul li 中触发 x 次(取消注释该行以在控制台中查看单击时发生的情况)。根据您期望的行为,只需停止事件传播即可。 (加上if (!$this.hasClass('active')) 将始终返回true,因为您刚刚删除了nav 中包含的所有li 中的所有“活动”类)。

$('.nav  li').click(function(e) {
  //console.log(e.currentTarget,"//",e.target,"//",this);
  e.stopPropagation();
  $('.nav li').removeClass('active');
  $(this).addClass('active');
});
.active{
  background-color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav class="navbar navbar-default">
        <div class="container">
            <div class="navbar-header">
                <a class="navbar-brand" href="#/">Vasu Genset Pvt. Ltd.</a>
                <button class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mydropdown">
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
            </div>
            <div class="collapse navbar-collapse" id="mydropdown">
                <ul class="nav navbar-nav navbar-right" id="navbar-change">
                    <li class="active"><a href="#/">Home</a></li>
                    <li><a href="#/">About Us</a></li>
                    <li class="dropdown">
                    <a href="#/" class="dropdown-toggle" data-toggle="dropdown">Products & Services <span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            <li><a href="#/">Generator Repair</a></li>
                            <li><a href="#/">Generator Maintenance</a></li>
                            <li><a href="#/">Alternator Repair & Maintenance</a></li>
                            <li><a href="#/">AMC Service Provider</a></li>
                            <li><a href="#/">Spare Parts</a></li>
                            <li><a href="#/">Generator Rental & Hire</a></li>
                            <li><a href="#/">Synchronizing Panel</a></li>
                            <li><a href="#/">AMF Panel</a></li>
                            <li><a href="#/">Acoustic Enclosures</a></li>
                        </ul>
                    </li>
                    <li><a href="#/">Contact Us</a></li>
                </ul>
            </div>
        </div>
    </nav>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 2020-07-09
    • 2019-05-18
    • 2016-12-12
    • 1970-01-01
    相关资源
    最近更新 更多