关于子页面操作ztree同步的问题
@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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
谢谢,我已经通过改为单击打开子节点解决了问题!!!
这个应该有很多种解决方案,主要思路是要如何解决 捕获异步加载结束的问题。
1、点击 root 让右侧显示内容时,可以利用reAsyncChildNodes 悄悄加载子节点,这样当右侧点击后,应该是已经有子节点了。
2、利用setTimeout 监控,当找到子节点后进行后面的操作;
3、利用 父节点的 treeNode.zAsync 属性判断,在 expandNode 之前如果该属性为 true 那么可以利用onAsyncSuccess 回调进行控制; 如果是false,那么应该可以立刻执行后续代码
请根据你的实际情况,灵活运用,有问题就继续沟通吧