zTree_v3
zTree_v3 copied to clipboard
check中关于Half Check的几个问题
你好,非常感谢你的ztree,让我们的业务开发更加高效。
不过这两天我碰到一个问题, 1.初始化时如何制定checkbox半选态,而不强制锁定(treeNode.halfCheck = true) 2.为什么设置了halfCheck时,className是false_part,而不是true_part? 3.为什么取消联动了(check.chkboxType = { Y: '', N: ''},仍然还会影响到父节点,导致其有false_part的状态
期待你的答复,在此谢过
求作者正解,这里的half check逻辑和联动感觉不是很顺畅
- 半选状态本身就是一种 被动的设置,因为它完全收子节点的勾选状态而影响的。 但考虑到有的异步加载的情况, 子节点都没有完全被加载进来,所以才有了 halfCheck 这个属性用来强制锁定 halfCheck。 所以 不太清除你所说的 既要 设置 半选状态, 又不允许 halfCheck 进行锁定半选状态。。。
- 你可以看 我制作的 API, zTree中的半选 并不是为了表明 节点本身是否被勾选, 它是为了表明节点是否被全部被勾选, 所以 当自己本身没有被勾选,而子节点有勾选的时候, 就肯定是 false_part 了,这纯粹是为了满足 css 显示 checkbox 图标而设计的。
- 第一个问题已经回答了, 半选状态是被动的,是受子节点影响的,并不是节点本身的勾选状态。他与勾选的父子之间的 勾选联动是不一样的。 可以说 半选状态是一种 数据之间的关联关系形成的状态值, 并不是那种 子节点勾选,父节点就勾选的 联动状态。 毕竟根据不同的需求我可以不希望 父节点被勾选。。。但 半选状态就不一样了, 只要子节点有勾选, 他的父节点可能就是会有 半勾选的状态出现,这是数据模型造成的,是不可改变的。
最后,如果你不希望显示半勾选 的状态,只需要修改一下 zTreeStyle ,让 半勾选的时候都显示成 全勾选,或 未勾选的 图标即可。。。其实只是个表现形式而已
初始化的时候需要还原半选状态,当子节点展开时,又希望该半选状态能自动根据子节点的勾选状态联动