Jquery 显示隐藏根节点基于剑道树视图中的子节点
我需要使用不带复选框的kendoTreeView显示/隐藏根节点和子节点 情况如下: 1) 当我单击根节点时,所有子节点都应隐藏。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();
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");
}
}
}