我使用:jstree使節點和它的孩子們
jstree("disable_node", "#" + NodeID);
在jstree禁用節點。並使用:
jstree("enable_node", "#" + NodeID);
啓用節點。
有沒有簡單的方法來disable/enable
一個節點,它的孩子?
謝謝
我使用:jstree使節點和它的孩子們
jstree("disable_node", "#" + NodeID);
在jstree禁用節點。並使用:
jstree("enable_node", "#" + NodeID);
啓用節點。
有沒有簡單的方法來disable/enable
一個節點,它的孩子?
謝謝
您可以使用下面的代碼。檢查演示 - Fiddle。
寫遞歸函數來遍歷你需要
changeStatus(NodeID, 'enable');
或
changeStatus(NodeID, 'disable');
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);
})
}
}
通話功能取決於多層次結構
我寫的基於jstree
documentation約get_node
功能和jstree
JSON數據格式enable/disable
輸入節點一個簡單的JS功能,它的所有的孩子在任何級別:
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
(字符串或對象的數組)屬性。