为什么 bootstrap 行不是 collapsing/expanding?
Why is are the bootstrap rows not collapsing/expanding?
我有一个显示嵌套数据的 table。数据如下所示:
Objective 1
Objective 1.1
Objective 1.1.1
Objective 1.2
Objective 1.2.1
Objective 2
数据要在table中显示如下:
要求是,当单击 Objective 1 时,会出现子行(Objective 1.1 和 Objective 1.2)。然后,当单击 Objective 1.1 或 Objective 1.2 时,会出现相关的孙行 (Objective 1.1 --> Objective 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>
table 显示正确,我的代码在单击 Objective 1 时有效,但是当单击 Objective 1.1 或 Objective 1.2 时,孙子行不会展开。
请帮忙!
当为 Objective X.X 打印 HTML 时,您有:
data-target="#.{{ node2[0][1] }}collapsed"
但你应该
data-target=".{{ node2[0][1] }}collapsed"
选择器未找到要折叠的元素。
希望修复后它能正常工作:D
好的,经过几个小时的摸索,我发现了问题!
程序使用给定的 objective 的唯一代码为与下一行的数据目标相关的每一行生成唯一的 ID 号。数据目标表示为:
data-target=".{{ node[0][1] }}collapsed"
结果 HTML 如下所示:
<tr class="clickable collapse out obj1collapsed" id="obj1.1"
data-toggle="collapse"
data-target=".obj1.1collapsed">
注意到数据目标中的第二个句点了吗?这就是导致问题的原因!当我删除它时,程序运行得非常好!
我有一个显示嵌套数据的 table。数据如下所示:
Objective 1
Objective 1.1
Objective 1.1.1
Objective 1.2
Objective 1.2.1
Objective 2
数据要在table中显示如下:
要求是,当单击 Objective 1 时,会出现子行(Objective 1.1 和 Objective 1.2)。然后,当单击 Objective 1.1 或 Objective 1.2 时,会出现相关的孙行 (Objective 1.1 --> Objective 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>
table 显示正确,我的代码在单击 Objective 1 时有效,但是当单击 Objective 1.1 或 Objective 1.2 时,孙子行不会展开。
请帮忙!
当为 Objective X.X 打印 HTML 时,您有:
data-target="#.{{ node2[0][1] }}collapsed"
但你应该
data-target=".{{ node2[0][1] }}collapsed"
选择器未找到要折叠的元素。
希望修复后它能正常工作:D
好的,经过几个小时的摸索,我发现了问题!
程序使用给定的 objective 的唯一代码为与下一行的数据目标相关的每一行生成唯一的 ID 号。数据目标表示为:
data-target=".{{ node[0][1] }}collapsed"
结果 HTML 如下所示:
<tr class="clickable collapse out obj1collapsed" id="obj1.1"
data-toggle="collapse"
data-target=".obj1.1collapsed">
注意到数据目标中的第二个句点了吗?这就是导致问题的原因!当我删除它时,程序运行得非常好!