zTree两棵树拖动中的删除图标显示问题
@zTree 你好,想跟你请教个问题:
描述:我有两棵zTree,分别是A和B,A设置showRemoveBtn为false,即鼠标移到A树上时不显示删除图标,B设置showRemoveBtn为true,即鼠标移动到B树上时显示删除图标。两棵树分别操作都没有问题。另外,A树允许Drag,在A树内部拖动一切正常,A树的beforeOnDrop判定treeId为B树时直接返回false(即我鼠标拖动A树节点拖动到B树上时)。但是当Drag A树的某一个子节点到B树上时,若此时我鼠标左键还没有松开,被移动到的B树节点显示了删除图标(这个是正常情况),此时我松开左键,会发现被拖动的A树节点没有变化(正常情况),但是被选定了,且出现了删除图标(这个删除图标是B树的,不是A树的,但却显示到A树上了。)。我现在想不出解决办法,我希望能够在发生这种情况时,A树那个被拖动节点不显示B树的删除图标。谢谢~期待您的回复~~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
记下了, 等我抽空测试一下看看吧,两天之内给你回复。
回复
非常感谢~不急不急~~对于您做这个项目,内心真的很感激~
回复
您好!我今天更新了您的3.5.13的代码,bug已经修正了,非常感谢!
这样呀, 利用 setting.edit.prev / next / inner 可以较好的实现你这个需求, 不允许拖拽时就直接 return false 即可。
@zTree 不好意思,我突然发现之前回复你的没有@到你。。。
你做了什么处理, 为何在 B 树上松开鼠标后, 节点没有移动过去?? 你是 拒绝移动了吗??? 请把你这部分是如何实现的告诉我,谢谢,
@zTree
非常感谢您的回复,但看完您的回复,我不确定您想的和我想的是否一样,我贴几张图片来说明一下。请见下图:
1、这里我有2棵树,左边是A,右边是B,鼠标点击可见我设置的删除按钮是A不显示,B显示的。
2、我将A点节点拖动到B树上,B树的节点正常显示了删除图标。
3、我松开鼠标,此时鼠标还在“7.mov”的位置,可见B的显示图标还是正常的,但是A节点旁边却出现了B的图标(此时showRemoveBtn显示参数treeId为B树的id,但其实我是从A树拖过去的。。。)
4、我重新选定A树节点,A树节点显示正常。
我觉得A树的节点拖到B树上,没有成功,不应该显示B树的图标,不知道您怎么看?期待您的回复~谢谢
你是说 A树的节点拖拽B树上,会显示删除图标,这样不对吗??
因为 节点被拖拽后,就按照 B树的规则来显示了,这样应该是比较正常的需求了。
不过你的这种需求也可以实现,那就是设置 showRemoveBtn 为 function 而不是 简单的 boolean; 这样你就可以根据节点的数据来判断是否显示 删除图标了
我用 multiTree.html 这个Demo 做了一个模拟你说的这种情况的测试,很遗憾还是没有出现你说的问题,但我发现了另两个和这个相关的小bug,进行了修正。
* 【修改】多棵树拖拽时,拖拽无效后会导致目标书已选择的节点清空的 bug。
* 【修改】多棵树拖拽时,会触发 addHoverDom 的bug。
在 https://github.com/zTree/zTree_v3 上你可以下载到最新的 zTree 代码,对比 v3.5.12 就可以看到这里面的差异了。
对于你自己出现的那个情况,如果问题依旧,也请你利用 multiTree.html 按照你的需求进行修改,让问题重现,然后发给我吧。
html页面代码如下, 你只需要替换 Demo 中的同名文件,替换内容即可。