展开/可折叠对象列表

时间:2014-10-13 06:28:05

标签: javascript python html django

我试图显示对象模型列表(机器人),模型有一个字段Parent,可以是另一个Robot。

我已经使用MPTT为Django实现了一个嵌套列表:

{% load mptt_tags %}
<ul>
    {% recursetree nodes %}
        <li>
            <a href="{{ node.get_absolute_url }}">{{ node.name }}</a>
            {% if not node.is_leaf_node %}
                <ul class="children">
                    {{ children }}
                </ul>
            {% endif %}

        </li>
    {% endrecursetree %}
</ul>

我现在想要使列表变得可扩展/可折叠 - 例如,我可以缩小所有节点的子节点。我在使用Javascript时遇到了麻烦,因为节点都是同一个类。有没有其他简单的方法来实现这个?

1 个答案:

答案 0 :(得分:2)

你可以使用node.level找出你在树中的等级,所以你只需要在顶级添加一个额外的CSS类,如下所示:

<ul id="node-{{ node.pk }}" class="children{% if node.level==0 %} top_level{% endif %}">

node.tree_id也可能很有趣,而不仅仅是pk