Javascript 将jsTree节点设置为“0”;未定“;陈述
我用复选框显示一棵树。使用Javascript 将jsTree节点设置为“0”;未定“;陈述,javascript,jquery,ajax,jstree,Javascript,Jquery,Ajax,Jstree,我用复选框显示一棵树。使用json\u数据插件按需加载每一级别的节点 如果检查了节点的后代,则该节点应处于“未确定状态”(如ACME和USA) 问题是,树一开始就倒塌了。ACME看起来未选中,但应该是未确定的。当我最终扩展到选中的节点时,jsTree意识到祖先应该是未确定的 因此,我需要能够在不加载其子项的情况下将复选框置于待定状态 使用jsTree可以通过将jsTree checked类添加到来预先选中一个框。我尝试添加jstree undeminated类,但它不起作用。它只是将它们置于
json\u数据
插件按需加载每一级别的节点
如果检查了节点的后代,则该节点应处于“未确定状态”(如ACME和USA)
问题是,树一开始就倒塌了。ACME看起来未选中
,但应该是未确定的
。当我最终扩展到选中的节点时,jsTree意识到祖先应该是未确定的
因此,我需要能够在不加载其子项的情况下将复选框置于待定
状态
使用jsTree
可以通过将jsTree checked
类添加到
来预先选中一个框。我尝试添加jstree undeminated
类,但它不起作用。它只是将它们置于选中状态
这是我的密码:
$("#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;
}
}
}
})
$(“#树”).jstree({
插件:[“json_数据”,“复选框”],
json_数据:{
阿贾克斯:{
url:“/api/group/node”,
成功:功能(组){
var节点=[];
对于(var i=0;i我有同样的问题,我找到的解决方案是:
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');
});
}
}
}
});
var-tree=$(“#tree”).jstree({
插件:[“json_数据”,“复选框”],
json_数据:{
阿贾克斯:{
url:“/api/group/node”,
成功:功能(组){
var节点=[];
对于(变量i=0;i
希望它能对你有所帮助!也许这同时也改变了
但是现在(3.0.0版),真正简单的解决方案可以工作了:
{
id:“如果省略,将自动生成字符串”//
text:“字符串”//node text
图标:“字符串”//string用于自定义
声明:{
打开:布尔//节点是否打开
已禁用:布尔//节点是否已禁用
selected:布尔//是否选定节点
待定:布尔//是节点待定,因此必须在成功回调运行后设置jstree待定
类-即完成。是的,我没有找到任何其他方法。