dojo dijitt.Tree:仅设置顶层条目的样式

gpfsuwkq  于 2022-12-08  发布在  Dojo
关注(0)|答案(1)|浏览(142)

我正在使用dijit/Tree处理基于一个大的分层JSON字符串的数据。到目前为止,它的工作效果很好。即使CSS的样式看起来也不错,但是现在我必须只为顶层元素更改样式。什么是只选择这些条目的最好方法?就我所见,现在有显式的类可以为它们提供。
有人有主意吗?
谨向马库斯致意

wb1gzix0

wb1gzix01#

与此同时我找到了解决办法。
您必须实现树的onOpen函数,并向最近打开的节点的所有子节点添加一个CSS类:

var tree = new dijit.Tree({
    model: treeModel,
    id: "navTree",       
    showRoot: false,
    autoExpand: false,       
    onOpen: function(item, node){
     var subNodeList = node.getChildren();       
     addMyClasses(subNodeList,(node.indent+1));
    },        
     openOnClick: false
}

function addMyClasses(nodeList,level){
   nodeList.forEach(function(entry){      
    entry.labelNode.className += " treeNavLevel"+level;   
   });
}

在我的例子中,我为树的每一层添加了一个不同的CSS类。

相关问题