jstree 启用节点及其子节点
jstree Enable a node and its children
我正在使用:
jstree("disable_node", "#" + NodeID);
禁用 JSTREE 中的节点。 并使用:
jstree("enable_node", "#" + NodeID);
以启用节点。
有没有一种简单的方法来disable/enable
节点及其子节点?
谢谢
您可以使用以下代码进行操作。检查演示 - 小提琴。
-
编写递归函数来迭代多级结构
function changeStatus(node_id, changeTo) { var node = $("#tree").jstree().get_node(node_id); if (changeTo === 'enable') { $("#tree").jstree().enable_node(node); node.children.forEach(function(child_id) { changeStatus(child_id, changeTo); }) } else { $("#tree").jstree().disable_node(node); node.children.forEach(function(child_id) { changeStatus(child_id, changeTo); }) } }
-
调用函数取决于您的需求
changeStatus(NodeID, 'enable');
或
changeStatus(NodeID, 'disable');
我根据jstree
有关get_node
函数的文档编写了一个简单的JS函数,并jstree
JSON数据格式,该格式enable/disable
输入节点及其在任何级别中的所有子节点:
NodeToggleEnable = function (node_id, enable) {
var tree = $("#jstree-locations");
var sub_tree = [node_id.toString()];
var index = 0;
while (index < children.length) {
var child = tree.jstree("get_node", "#" + children[index]).children;
sub_tree = sub_tree.concat(child);
if (enable == false)
tree.jstree("disable_node", "#" + sub_tree[index]);
else
tree.jstree("enable_node", "#" + sub_tree[index]);
index++;
}
}
此函数使用get_node
函数选择的节点的children
(字符串或对象数组)属性。
相关文章:
- 通过从节点父级获取所有子级对节点进行排序(获取子级数组)
- 选择<李>使用普通JavaScript的子节点,而不是孙节点
- JavaScript选择器:查找包含具有特定属性的子体的节点
- js循环遍历单击的元素子节点
- 如何将数据添加到json的子节点
- 删除HTML节点而不删除其子节点
- 如何在javascript DOM api中获取具有给定条件的子节点
- 仅使用某些子节点访问xml中父节点的子节点
- 如何将节点添加到子对象
- 节点.js子进程中的运行函数
- 检测单击子节点并发送槽事件处理程序
- 从 d3.js 中的树中选择节点的子节点
- 访问所选剑道树视图节点的子节点
- 为什么正文标记后的脚本标记在子节点中计数
- 难以获取使用属性选择的节点的子节点
- xml解析-用javaScript解析子子xml节点
- 是否有可能监视或以某种方式检测子dom节点何时追加到父节点
- 当某些节点被选中/取消选中时,自动检查/取消选中extjs树中的所有子树节点
- 正在调用子iframe节点中的Javascript函数
- 将缓冲区传递到子进程节点.js