我正在使用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非常适合活动导航栏,而且这种情况下只有一个.

我在谷歌上搜索并找到了一个添加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.然而,没有任何改善.我在哪里做错了,我在哪里犯错了?

推荐答案

当链接的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, 'yourtemplate.html', {'nbar': 'home'})

通过这种方式,您不必使用javascript管理此功能.

Django相关问答推荐

使用FormWizard将信息从视图传递到表单

Django显示交叉表格

""关系"core_Boundary_summary的列user_id中的空值"违反了非空约束|失败行包含(2,title,string,null)

如何在Django模板中为无效词典查找打开异常?

Templatetag 在 Django 4.2 模板 IF 条件中不起作用

按下按钮刷新在html文件中显示的变量

PyCharm:强制 Django 模板语法突出显示

Django 基于角色的视图?

django- nginx: [emerg] open() "/etc/nginx/proxy_params" 在 /etc/nginx/sites-enabled/myproject:11 中失败(2:没有这样的文件或目录)

Django 模板列表的第一个元素

Django-获取外键模型

Django - 无法为具有动态 upload_to 值的 ImageField 创建迁移

获取 Django 表单中的错误列表

django 模板 if 或语句

对 django 的 Http Delete 请求返回 301

在 Django 中扩展 urlize

如何在 Django 中测试自定义模板标签?

过滤 Django 数据库中包含数组中任何值的字段

1 个 django 应用程序中约有 20 个模型

如何更改 ModelForm 中所有 Django 日期字段的默认小部件?