Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 显示隐藏根节点基于剑道树视图中的子节点_Jquery_Kendo Ui_Treeview_Kendo Treeview - Fatal编程技术网

Jquery 显示隐藏根节点基于剑道树视图中的子节点

Jquery 显示隐藏根节点基于剑道树视图中的子节点,jquery,kendo-ui,treeview,kendo-treeview,Jquery,Kendo Ui,Treeview,Kendo Treeview,我需要使用不带复选框的kendoTreeView显示/隐藏根节点和子节点 情况如下: 1) 当我单击根节点时,所有子节点都应隐藏。 2) 当我单击单个子节点时,该单个节点将被隐藏。 3) 当我单击所有子节点时,根节点应该被隐藏。 4) 当我再次单击以显示子节点时,应该显示根节点 我能够实现1和2使用下面的代码,但3和4步骤不工作 请参阅以下代码: select: function (e) { e.preventDefault();

我需要使用不带复选框的kendoTreeView显示/隐藏根节点和子节点

情况如下:

1) 当我单击根节点时,所有子节点都应隐藏。
2) 当我单击单个子节点时,该单个节点将被隐藏。
3) 当我单击所有子节点时,根节点应该被隐藏。
4) 当我再次单击以显示子节点时,应该显示根节点

我能够实现1和2使用下面的代码,但3和4步骤不工作

请参阅以下代码:

 select: function (e) {
                e.preventDefault();
                var item = $(e.node);
                var treeviewData = treeview.data("kendoTreeView");
                var node = treeviewData.dataItem(e.node);
                var rootNode = treeviewData.dataItem(treeviewData.parent(e.node));
                node.isSelected = !node.isSelected;
                if(node && node.items && node.items.length > 0){
                    var childern = $(item).find('.k-in');
                    var childrenDataItem;
                    if(childern){
                         for (var i = 0; i < childern.length; i++) {
                             childrenDataItem =  treeviewData.dataItem(childern);
                             childrenDataItem.isSelected = node.isSelected;
                            $this._changeLegendState(childern[i],rootNode,node.isSelected);
                         }
                    }

                }else{
                        $this._changeLegendState(item,rootNode,node.isSelected);
                }
请告诉我如何实现第3步和第4步,或者是否有其他更容易实现上述4步的方法

_changeLegendState : function(node,rootNode,isSelected){
        if(isSelected){
            if($(node).hasClass("chartlegend-selected")){
                $(node).removeClass("chartlegend-selected");
                $(node).addClass("chartlegend-unselected");

            }else if($(node).hasClass("chartlegend-unselected")){
                $(node).removeClass("chartlegend-unselected");
                $(node).addClass("chartlegend-selected");
            }else{
                $(node).addClass("chartlegend-selected");
            }
        }
        }