DWZ zTree 完美整合 ?
如果硬拼DWZ 和zTree,能够正确的实现树型列表,但是叶子层的Target会失效,绝对不是没有uploadnode的原因,后才测试了很久,分析觉得还是整合出的问题。
需要把zTree生成的部分放到dwz.ui.js 中的initUI 里面处理。但是具体怎么整合,却不知道怎么做,想在网络上找个例子,但是最终只找到了一个几乎没有说明的例子,请教有经验的朋友帮个忙给个详细点的实例参考下。
//selectOne ztree编辑时只能选择一项 $("a[target=ztreeEditSelectOne]", $p).each(function() { $(this).click(function(event) { var $this = $(this); var title = $this.attr("title") || $this.text(); var rel = $this.attr("rel") || "ids"; var targetType = $this.attr("targetType"); var ids = ""; var $box = targetType == "dialog" ? $.pdialog.getCurrent() : navTab.getCurrentPanel(); //这里要根据你使用ztree的id查找ztree对象 var zTree = $.fn.zTree.getZTreeObj("treeDemo"), nodes = zTree.getCheckedNodes(true), v = ""; var dept = ""; for (var i = 0, l = nodes.length; i < l; i++) { v += nodes[i].name + ","; dept += nodes[i].id + ","; } if (v.length > 0) { v = v.substring(0, v.length - 1); dept = dept.substring(0, dept.length - 1); } ids = dept; if (!ids) { alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg")); return false; } if (ids.indexOf(',') != -1) { alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg")); return false; } var options = {}; var w = $this.attr("width"); var h = $this.attr("height"); if (w) options.width = w; if (h) options.height = h; //options.max = eval_r($this.attr("max") || "false"); options.mask = eval($this.attr("mask") || "false"); options.maxable = eval($this.attr("maxable") || "true"); options.minable = eval($this.attr("minable") || "true"); options.fresh = eval($this.attr("fresh") || "true"); options.resizable = eval($this.attr("resizable") || "true"); options.drawable = eval($this.attr("drawable") || "true"); options.close = eval($this.attr("close") || ""); options.param = $this.attr("param") || ""; var url = ($this.attr("href")).replaceTmById($(event.target).parents(".unitBox:first")); url = url + "&ids=" + ids; DWZ.debug(url); if (!url.isFinishedTm()) { alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg")); return false; } $.pdialog.open(url, rel, title, options); return false; }); }) $("a[target=ztreeDelAjaxTodo]", $p).each(function() { $(this).click(function(event) { var $this = $(this); var title = $this.attr("title") || $this.text(); var rel = $this.attr("rel") || "ids"; var targetType = $this.attr("targetType"); var ids = ""; var $box = targetType == "dialog" ? $.pdialog.getCurrent() : navTab.getCurrentPanel(); //这里要根据你使用ztree的id查找ztree对象 var zTree = $.fn.zTree.getZTreeObj("treeDemo"), nodes = zTree.getCheckedNodes(true), v = ""; var dept = ""; for (var i = 0, l = nodes.length; i < l; i++) { v += nodes[i].name + ","; dept += nodes[i].id + ","; } if (v.length > 0) { v = v.substring(0, v.length - 1); dept = dept.substring(0, dept.length - 1); } ids = dept; // if (!ids) { // alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg")); // return false; // } // if (ids.indexOf(',') != -1) { // alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg")); // return false; // } var options = {}; var w = $this.attr("width"); var h = $this.attr("height"); if (w) options.width = w; if (h) options.height = h; //options.max = eval_r($this.attr("max") || "false"); options.mask = eval($this.attr("mask") || "false"); options.maxable = eval($this.attr("maxable") || "true"); options.minable = eval($this.attr("minable") || "true"); options.fresh = eval($this.attr("fresh") || "true"); options.resizable = eval($this.attr("resizable") || "true"); options.drawable = eval($this.attr("drawable") || "true"); options.close = eval($this.attr("close") || ""); options.param = $this.attr("param") || ""; var url = ($this.attr("href")).replaceTmById($(event.target).parents(".unitBox:first")); url = url + "&ids=" + ids; var title = $this.attr("title"); if (title) { alertMsg.confirm(title, { okCall: function() { ajaxTodo(url, $this.attr("callback")); } }); } else { ajaxTodo(url, $this.attr("callback")); } event.preventDefault(); // DWZ.debug(url); // if (!url.isFinishedTm()) { // alertMsg.error($this.attr("warn") || DWZ.msg("alertSelectMsg")); // return false; // } // //(url, rel, title, options); // ajaxTodo(url, $this.attr("callback")); //return false; }); })
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
引用来自“danielWolf”的评论
最终测试发现,要使用zTree的2.5版本的,然后就没问题了。
搞定,收工!~
您好 用2.5的版本 rel属性可以直接生成出来吗?
呵呵,现在项目赶时间,先凑合用着,等空下来再研究新的版本融合,新的功能确实比较完善。
用 zTree + DWZ的还有其他朋友, 有人咨询过一些其他问题,但据我所知都是使用的新版本zTree的。 只不过可惜我没有专门这么弄过,所以也无法很专业的回答你这个问题。
我觉得你现在的问题是需要理解 DWZ 的工作原理,这样你就能明白是应该如何结合在一起了
本身的bug,想起他办法解决啊,反正都是js,比如在外面拿不到整个树的问题,我就直接在树内加载外部。
网上 现在有例子了 , 而且 你用ztree老版本 那么 它本身一些bug 你打算怎么办?
确实不行,只有最外一层的修改的target有效,正因为新版本不行,我才试用老版本的。
嚓!!! 居然要用那么旧的版本????? 为啥呀??? v3.5.12 不行吗??
最终测试发现,要使用zTree的2.5版本的,然后就没问题了。
搞定,收工!~