为什么引导行不会崩溃/扩展?

时间:2016-11-21 16:55:54

标签: javascript twitter-bootstrap-3 flask jinja2

我有一个显示嵌套数据的表。数据如下所示:

Objective 1
    Objective 1.1
        Objective 1.1.1
    Objective 1.2
        Objective 1.2.1
Objective 2

数据将显示在表格中,如下所示: enter image description here

要求是,当点击目标1时,出现子行(目标1.1和目标1.2)。然后,当点击目标1.1或目标1.2时,出现相关的孙子行(目标1.1 - >目标1.1.1)。

我在这个项目中使用Python,Flask和Bootstrap,如果可能的话,我想完全在Bootstrap中执行这个任务。

我目前的HTML如下:

<table class="table">
<thead>
<tr>
    <th>Primary Objectives</th>
    <th>Secondary Objectives</th>
    <th>Tertiary Objectives</th>
    <th>Editing Tools</th>
</tr>
</thead>

<tbody>
{% for node in all_nodes %}
<tr class="clickable" data-toggle="collapse" id="{{ node[0][1] }}" data-target=".{{ node[0][1] }}collapsed">
    <!-- objective tree -->
    <td class="text-left">{{ node[0][0] }}</td>
    <td class="text-left"></td>
    <td class="text-left"></td>

    <!-- Editing tools -->
    <td><a href="/edit/{{ node[0][1] }}" class="fa fa-edit"
           title="Edit Objective"></a>
        <div class="fa fa-circle-thin"></div>
        <a href="/deleteobjective/{{ node[0][1] }}" class="fa fa-exclamation-triangle"
           title="Delete User"></a>
    </td>
</tr>
{% for node2 in node[1] %}
<tr class="clickable collapse out {{ node[0][1] }}collapsed" id="{{ node2[0][1] }}" data-toggle="collapse"
    data-target=".{{ node2[0][1] }}collapsed">
    <!-- objective tree -->
    <td class="text-left"></td>
    <td class="text-left">{{ node2[0][0] }}</td>
    <td class="text-left"></td>

    <!-- Editing tools -->
    <td><a href="/edit/{{ node2[0][1] }}" class="fa fa-edit"
           title="Edit Objective"></a>
        <div class="fa fa-circle-thin"></div>
        <a href="/deleteobjective/{{ node2[0][1] }}" class="fa fa-exclamation-triangle"
           title="Delete User"></a>
    </td>
</tr>
{% for node3 in node2[1] %}
<tr class="collapse out {{ node2[0][1] }}collapsed">
    <!-- objective tree -->
    <td class="text-left"></td>
    <td class="text-left"></td>
    <td class="text-left">{{ node3[0] }}</td>

    <!-- Editing tools -->
    <td><a href="/edit/{{ node3[1] }}" class="fa fa-edit"
           title="Edit Objective"></a>
        <div class="fa fa-circle-thin"></div>
        <a href="/deleteobjective/{{ node3[1] }}" class="fa fa-exclamation-triangle"
           title="Delete User"></a>
    </td>
</tr>
{% endfor %}
{% endfor %}
{% endfor %}
</tbody>

当单击目标1时,表格显示正确并且我的代码有效,但是当单击目标1.1或目标1.2时,孙子行不会展开。

请帮忙!

2 个答案:

答案 0 :(得分:1)

为Objective X.X打印HTML时,您有:

data-target="#.{{ node2[0][1] }}collapsed"

但你应该

data-target=".{{ node2[0][1] }}collapsed"

选择器未找到要折叠的元素。

希望在解决这个问题后有效:D

答案 1 :(得分:0)

好的,所以经过几个小时的头部刮伤后我发现了问题!

程序使用给定目标的唯一代码为与下一行的数据目标相关的每一行生成唯一的ID号。数据目标表示为:

data-target=".{{ node[0][1] }}collapsed"

生成的HTML如下所示:

 <tr class="clickable collapse out obj1collapsed" id="obj1.1"
                data-toggle="collapse"
                data-target=".obj1.1collapsed">

请注意数据目标中的第二个时期?这就是造成这个问题的原因!当我删除它时程序运行得很漂亮!