关于子页面操作ztree同步的问题

发布于 2021-11-18 17:11:24 字数 1196 浏览 781 评论 2

 

@zTree 你好,想跟你请教个问题:

我的页面通过iframe包含的左右两个页面,左边是ztree,右边是列表,ztree读取的是本地的某个目录,现在要实现点击右边的列表,展开左边对应的节点。

操作:比如根节点root,子节点child1,child2,在页面初始化时,只有root,单击root刷新右边列表,显示child1,chil2,(这个时候tree里还没有加载出来child1,child2),点击右边列表的child1,展开tree的child1。

实现思路:通过id找到root,展开root,然后再找到child1,展开。

问题:找到root展开以后child1的创建工作还没有完成,就执行了查找child1的操作,通过id无法找到child1,则无法展开。

不知道是否有方法使child1创建完成以后,再查找child1呢??

 

代码:这是右边列表的onclick事件,funcTree为iframe的id,hashCode为文件路径的hashCode,用做id

var parentNode=window.parent.funcTree.zTree.getNodeByParam("id",<%=hashCode%>);//查找父节点
        window.parent.funcTree.zTree.expandNode(parentNode, true);//展开父节点
        alert(111);//弹出后可以找到子节点,去掉无法找到,异步问题
        var treeNode=window.parent.funcTree.zTree.getNodeByParam("id",hashcode);//查找Ztree里id为hashcode的子节点
         window.parent.funcTree.zTree.expandNode(treeNode, true);//展开子节点

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

无人问我粥可暖 2021-11-18 19:39:11

谢谢,我已经通过改为单击打开子节点解决了问题!!!

巡山小妖精 2021-11-18 19:37:12

这个应该有很多种解决方案,主要思路是要如何解决 捕获异步加载结束的问题。

1、点击 root 让右侧显示内容时,可以利用reAsyncChildNodes 悄悄加载子节点,这样当右侧点击后,应该是已经有子节点了。

2、利用setTimeout 监控,当找到子节点后进行后面的操作;

3、利用 父节点的 treeNode.zAsync 属性判断,在 expandNode 之前如果该属性为 true 那么可以利用onAsyncSuccess 回调进行控制; 如果是false,那么应该可以立刻执行后续代码

请根据你的实际情况,灵活运用,有问题就继续沟通吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文