选择/取消选择递归子节点在点击最上面的节点

Selection/Unselection for recursive childs nodes on clicking the top most node - highchecktree Jquery Plugin

本文关键字:选择 节点 取消 递归 子节点      更新时间:2023-09-26

在展开所有子节点之前,单击顶部父节点如何选择/取消选择递归子节点?

问题: 如果我们选择/取消选择highcheck树的最顶部节点,它将选择/取消选择resp。只有第二层以下的节点。因此,如果存在第三个级别,在单击顶部父节点时,选择/取消选择将不维持在相同级别和其他级别,除非我们展开所有节点。

问题的原因: 我发现的是,最初它只为父级的第二级创建html。如果我们点击子关卡,它将创建下一个关卡(如果存在的话)。因此,如果我们在展开所有节点之前单击最上面的节点,则不会维护选择/取消选择。

我找到了同样的解决方案。我们可以通过首先展开所有节点,然后使用下面的代码折叠所有节点来创建所有节点来完成任务:

    //for creating all nodes initially
    function createAllNodesInitially(node) {
        /*To display whole High Check Tree expanded Initially*/
        setTimeout(function(){$('.collapsed').click() }, 1000); 
        for(var i = 0; i < node.length; i++) {
            if(node[i].children != undefined){
                createAllNodesInitially(node[i].children);
            }
        }
        /*To display whole check tree collapsed after creating all nodes Initially */
        setTimeout(function(){$('.expanded').click() }, 1000); 
    } 
    createAllNodesInitially(settings.data);

只需将此代码添加到highchecktree.js中。

说明:这将展开所有节点,这将在内部创建所有节点,然后折叠所有子节点。因此,现在在单击最上面的节点时,将自动维护所有递归子节点的选择/取消选择。

这将在highchecktree创建时执行一次(即,initial)。

注意:如果您想初始显示所有节点扩展,只需从代码中删除下面一行的/注释:

setTimeout(函数(){$ (' .expanded) .click ()}, 1000);