gpt4 book ai didi

javascript - 将 jsTree 节点设置为 "Undetermined"状态

转载 作者:搜寻专家 更新时间:2023-11-01 04:09:33 25 4
gpt4 key购买 nike

我正在使用 jsTree显示带有复选框的树。使用 json_data 按需加载每个级别的节点插件。

如果检查了节点的后代,则该节点应处于“未确定状态”(如 ACME 和 USA)。

Checked Descendent in jsTree

问题是,树开始折叠。 ACME长相unchecked应该undetermined .当我最终扩展到一个选中的节点时,jsTree 意识到祖先应该是 undetermined .

Expanding to checked node fixes the problem

所以我需要能够在 undetermined 中放置一个复选框不加载其子项的状态。

jsTree您可以通过添加 jstree-checked 来预先选中一个框类到 <li> .我尝试添加 jstree-undetermined类,但它不起作用。它只是将它们置于检查状态。

这是我的代码:

$("#tree").jstree({
plugins: ["json_data", "checkbox"],
json_data: {
ajax: {
url: '/api/group/node',
success: function (groups) {
var nodes = [];
for (var i=0; i<groups.length; i++) {
var group = groups[i];

var cssClass = "";
if(group.isSelected)
cssClass = "jstree-checked";
else if(group.isDecendantSelected)
cssClass = "jstree-undetermined";

nodes.push({
data: group.name,
attr: { 'class': cssClass }
});
}
return nodes;
}
}
}
})

我的问题

如何将节点设置为 undetermined状态?

最佳答案

我遇到了同样的问题,我找到的解决方案是这个:

var tree = $("#tree").jstree({
plugins: ["json_data", "checkbox"],
json_data: {
ajax: {
url: '/api/group/node',
success: function(groups) {
var nodes = [];
for (var i = 0; i < groups.length; i++) {
var group = groups[i];
var checkedState = "false";
if (group.isSelected)
checkedState = "true";
else if (group.isDecendantSelected)
checkedState = "undetermined";
nodes.push({
data: group.name,
attr: { 'checkedNode': checkedState }
});
}
return nodes;
},
complete: function () {
$('li[checkedNode="undetermined"]', tree).each(function () {
$(this).removeClass('jstree-unchecked').removeClass('jstree-checked').addClass('jstree-undetermined');
});
$('li[checkedNode="true"]', tree).each(function () {
$(this).removeClass('jstree-unchecked').removeClass('jstree-undetermined').addClass('jstree-checked');
});
$('li[checkedNode="false"]', tree).each(function () {
$(this).removeClass('jstree-checked').removeClass('jstree-undetermined').addClass('jstree-unchecked');
});
}
}
}
});

希望对你有帮助!

关于javascript - 将 jsTree 节点设置为 "Undetermined"状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19162186/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com