我有一棵5级树,但只有孩子有一个自定义ID。
<div id="jstree-naf">
<ul>
{% for key, naf in json["naf"] %}
<li>{{ key }}
<ul>
{% for key2, naf2 in naf %}
<li>{{ key2 }}
<ul>
{% for key3, naf3 in naf2 %}
<li>{{ key3 }}
<ul>
{% for key4, naf4 in naf3 %}
<li>{{ key4 }}
<ul>
{% for key5, naf5 in naf4 %}
<li id="{{ key5 }}">{{ naf5 }}</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
</li>
{% endfor %}
</ul>
</div>
但是,当我选择某些东西时,我得到了孩子的身份证,还有父母的自动身份证。
["58.11Z", "j2_1212"]
我的ID是“ 58.11Z”,但“ j2_1212”是他的直接父级之一,由jstree自动创建,但我不需要它。
这是我的基本初始化:
$('#jstree-naf').jstree({
"plugins" : [ "wholerow", "checkbox" ]
});
$('#jstree-naf').on("changed.jstree", function (e, data) {
console.log(data.selected);
});
最佳答案
您需要根据此处的要求配置复选框插件。
参见此处jsTree Checkbox plugin config options。
根据您的要求,您需要将$.jstree.defaults.checkbox.three_state
设置为false(默认设置为true),将$.jstree.defaults.checkbox.cascade
设置为up / down / undefined。
如jstree网站中提到的“ $ .jstree.defaults.checkbox.cascade”
此设置控制级联和不确定节点的方式
应用。
如果字符串中有'up'-启用了层叠,
如果字符串中有'down'-启用级联,
如果字符串中包含“不确定”,则未确定的节点为
用过的。
如果three_state设置为true,则此设置自动设置为
“上+下+不确定”。默认为''
在您不希望启用层叠的情况下,可以将层叠选项设置为“向下+不确定”
要保持级联启用并仍只获取选定的子元素。
使用get_bottom_selected方法。
$('#jstree-naf').jstree().get_bottom_selected()