登录

python - 关于django 模板中循环列表

有一个导航条,想在这个导航下被激活的时候添加一个class = 'on'属性
如果点导航第二项 就第二项加这个class

{% for nav in NAV %}
<li>nav</li>
{% end for %}

比如

<li class="on">第一项</li>
<li>第二项</li>
<li>第三项</li>

这种该怎么实现呢?

# Python
欧阳克 欧阳克 2479 天前 792 次浏览

全部回复(2) 我要回复

  • 淡淡烟草味

    淡淡烟草味2017-07-05 10:36:48

    #后端
    navs = [
        {'name': '菜单1', 'url': 'url1'},
        {'name': '菜单2', 'url': 'url2'}
    ]
    
    for nav in navs:
        nav['class'] = 'on' if nav['url'] == request.path else None
        
    #前端
    {% for nav in navs %}
    <li class={{ nva.class }}>{{ nva.name }}</li>
    {% end for %}

    回复
    0
  • ringa_lee

    ringa_lee2017-07-05 10:36:48

    你这个跟 django 没什么关系啊。
    你这个是前端页面的问题,比如:
    你一次把导航都加载到前端页面,然后需要根据点击来打开当前菜单,然后关闭其他菜单的效果,对吧?
    要是我理解的没问题的话,这是前端的问题

    1、 bootstrap 或者 UIKit 都是支持这种效果的;

    2、你自己写导航样式,比如名称为active,然后在jQuery 里给你点击的对象 $(this).addClass('active'),这是一个思路;

    回复
    0
  • 取消 回复 发送