我正在使用Django和与Django集成的Bootstrap.这是导航栏的
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工作完美的主动导航栏和这种情况只有一个.
$('.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.但是,没有改善.我在哪里错了,我在哪里犯错?
解决方法
当您的链接的href属性与href =“#”不同时,此解决方案不起作用.为什么因为每次点击链接都会触发对服务器的请求.在你的JS代码中,你添加了preventDefault()方法,以避免这种基本行为,但是我认为这不是真的你的目的,为此目的不是吗?
base.html文件
<div class="collapse navbar-collapse" id="tn-navbar-collapse"> <ul class="nav navbar-nav"> <li class="{% if nbar == 'home' %}active{% endif %}"> <a href="/">HOME</a> </li> ... </ul> </div>
views.py
def your_view(request): ... return render(request,{'nbar': 'home'},"yourtemplate.html")
通过这种方式,您无需使用javascript来管理此功能.