我有一个dojo树,树上没有子节点的节点旁边不应该有“+”,通常单击它可以展开并看到子节点。
var treeJSON = [{"id": "0", "name":"TreeTop", "type":"Enterprise", "parent":"", "sort_key":"0",},{"id": "1", "name":"West", "type":"Region", "parent":"0", "sort_key":"1"},{"id": "2", "name":"East", "type":"Region", "parent":"0", "sort_key":"2"},{"id": "3", "name":"SE", "type":"Region", "parent":"2", "sort_key":"0"}];
dojo tree jsfiddle
我希望看到的是dojo示例中的内容(以编程方式运行Expanding和selection tree node示例:
以编程方式展开和选择树节点
您会注意到在dojo示例中,'Egypt'在启动时没有'+',并且显示一个打开的文件夹,因为没有子文件夹。
3条答案
按热度按时间3pvhb19x1#
在该演示中,创建了
dijit/Tree
的新示例,并将属性autoExpand
设置为true
(see正文最后一行中的
data-dojo-props
)。4sup72z82#
在树的
onOpenTreeNode
函数中,我检查了每个子类,并像这样替换了类,但我已经知道它们是否有子类。uxh89sit3#
我想出了一个解决方案,它可以删除没有子元素的树元素旁边的“+"图标,而不改变任何默认的树行为,我不明白为什么这不是Dojo树的默认行为。
总之,当树项没有任何子项时,我更改了
expando
节点对象的样式,因此background-image
的css for+
更改为none
在
onOpen
事件中:Updated jsfiddle showing a working example
当在初始化期间加载树时,我通过调用这个函数创建了一个父id的哈希值,并计算有多少引用了这个id(不需要计算,但我还是计算了):
然后,在创建树对象时,我覆盖
onOpen
事件:这样看起来更赏心悦目,也更直观,无需点击树节点上的每个
+
,就可以轻松查看哪些树元素没有子元素。您仍然可以点击+
曾经所在的位置,这将导致打开文件夹,但由于没有子元素,该文件夹什么也不显示。