【发布时间】:2014-07-30 18:34:41
【问题描述】:
我正在使用 Django 并将 Bootstrap 与 Django 集成。这是我的导航栏 HTML 代码:
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<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="#">Project name</a>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li ><a href="#">About</a></li>
<li><a href="#">Contact</a></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Games <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li><a href="#">RacingDNA</a></li>
<li><a href="#">Skater Game</a></li>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
我还为活动导航栏编写了 CSS。在这里,只有一个导航栏处于活动状态。我想让单击的导航栏处于活动状态,从而应用我的 CSS。我的 CSS 非常适合活动导航栏,并且仅适用于这种情况。
我用谷歌搜索并找到了添加此 jQuery 的解决方案:
$('.nav.navbar-nav > li').on('click', function (e) {
e.preventDefault();
$('.nav.navbar-nav > li').removeClass('active');
$(this).addClass('active');
});
现在这是我卡住的地方。我不知道在哪里写这个 jQuery。
我将此文件放在static/js 文件夹中,并将此代码命名为nav-bar.js。但是,没有任何改善。我哪里出错了,我在哪里犯了错误?
【问题讨论】:
-
我喜欢这个解决方案,它的耦合度不如公认的答案:Pythonic way of adding class="active" to navbar (Django)
-
上面用户的解决方案比较准确,请点击链接进行解释。简而言之,将.....class="{% ifequal request.path '
' %} active {% endifequal%}"..... 添加到导航中的每个“li”对象。将其各自的 替换为其中。