jstree 启用节点及其子节点
jstree Enable a node and its children
我正在使用:
jstree("disable_node", "#" + NodeID);
禁用 jstree 中的节点。并使用:
jstree("enable_node", "#" + NodeID);
启用一个节点。
是否有一种简单的方法来 disable/enable
节点及其子节点?
谢谢
我基于 jstree
documentation about get_node
function and jstree
JSON 数据格式编写了一个简单的 JS 函数,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++;
}
}
此函数使用 children
(字符串或对象数组)属性 由 get_node
函数选择的节点。
您可以使用下面的代码来完成。检查演示 - Fiddle.
写一个递归函数迭代多层结构
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("disable_node", "#" + NodeID);
禁用 jstree 中的节点。并使用:
jstree("enable_node", "#" + NodeID);
启用一个节点。
是否有一种简单的方法来 disable/enable
节点及其子节点?
谢谢
我基于 jstree
documentation about get_node
function and jstree
JSON 数据格式编写了一个简单的 JS 函数,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++;
}
}
此函数使用 children
(字符串或对象数组)属性 由 get_node
函数选择的节点。
您可以使用下面的代码来完成。检查演示 - Fiddle.
写一个递归函数迭代多层结构
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');