如何编程实现sim-tree插件加载完成后默认折叠所有树节点
sim-tree 初始化强制全折叠实现方法
sim-tree 本身没有提供配置项可以关闭「包含已勾选子项时默认展开」的默认逻辑,直接在树渲染完成的done回调里手动重置所有节点状态即可,不会影响已有的勾选值、父子关联勾选等原有功能。
修改步骤
你原来的done回调是空的,直接把折叠逻辑填进去即可,修改后的simTree初始化代码段:
var tree = simTree({ el: '#treez', data: list, check: true, linkParent: true, onClick: function (item) { console.log(item) }, onChange: function (item) { console.log(item) var formData = JSON.stringify(item); }, done: function () { // 渲染完成后将所有展开节点重置为折叠 $('#treez').find('.sim-tree-node.open').each(function () { $(this).removeClass('open'); $(this).children('.sim-tree-children').hide(); }); } });
注意点
- 该逻辑仅修改节点的展开/折叠显示状态,不会改动任何节点的勾选属性,加载后你之前设置的
checked=true项依然会保持选中 - 原有点击箭头展开/折叠、勾选联动的交互完全不受影响
- 如果需要个别节点默认展开,只要在遍历的时候判断对应节点的id,跳过不需要折叠的节点即可
内容的提问来源于stack exchange,提问作者Zorg
相关产品推荐
相关产品推荐

