2014-10-13 97 views
1

我試圖顯示對象模型(機器人)的列表,模型有一個字段父可以是另一個機器人。展開/可摺疊對象列表

我實現了使用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> 

我現在想使列表exandable /可摺疊 - 例如,我可以收縮所有節點的孩子。我在使用JavaScript時遇到了麻煩,因爲節點都是同一個類。有沒有其他簡單的方法來實現呢?

+0

嗯,將崩潰應用於所有類別爲「children」的ul元素?應該做的伎倆還是我錯過了什麼?您將分別獲得頂級節點名稱和摺疊子節點的列表 –

+0

然後,摺疊將應用於列表中的所有子元素,而不僅僅是我希望摺疊的父節點的子元素。 – Dawson

回答

2

你能找出什麼水平你在使用node.level樹,所以你只需要添加一個額外的CSS類只是頂層,這樣的事情:

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

node.tree_id也是有趣的,而不是僅僅pk

+0

謝謝,這就是我一直在尋找的。 – Dawson

+0

其實我在使用這個時遇到同樣的問題。問題是我只想摺疊一個節點。這仍然會崩潰,因爲它沒有區分它們。 – Dawson

+1

然後您需要爲節點添加一個唯一的ID –