问题描述
在zTree下,如图所示:怎么将已经勾选的节点重新复制一份? 问题补充:zTreeAPI 写道
解决方案
你到底如何挑选需要复制的节点,那是你的规则,我就不写例子了;另外复制节点数据后新添加数据使用addNodes方法即可,我也不写例子了;关键是clone 复制,我把 zTree 内的clone 方法进行了一点修改,应该可以满足你的复制要求,你拿去试试看,有问题继续沟通吧!var clone = function (jsonObj) {var buf;if (jsonObj instanceof Array) {buf = [];var j=0, i = jsonObj.length, k=0;while (j<i) {var tmpObj = arguments.callee(jsonObj[j++]);if (tmpObj) {buf[k++] = tmpObj;}}return buf;}else if (typeof jsonObj == "function"){return jsonObj;}else if (jsonObj instanceof Object){if (jsonObj.checked) {buf = {};for (var k in jsonObj) {buf[k] = arguments.callee(jsonObj[k]);}return buf;}}else{return jsonObj;}}
解决方案二:
还有呀,难道你每次回复真的就要 给这个问题盖楼吗?? 我觉得太夸张了,呵呵
解决方案三:
hoho,你不看我给你写的clone方法呀,我修改后的clone方法,在复制的时候,就已经把未被勾选的节点删除了,你不需要自己再重新递归遍历删除的。
解决方案四:
基础问题还需要你多学习巩固, 大家时间都是有限的,不可能所有问题都逐一详细解答的。希望你能理解。 关于这个问题,请你注意, function a() {} 和 var a = function() {} 这两种定义方式基本上是相同的; 使用方法也是直接的 a() 即可;对于另一种 json 格式的定义就不一样了var b = {a: function() {},b: 1}调用时需要 b.a() 或 b.b 这么调用,如果这种你不理解,我建议你去好好学习一下javascript 的基础知识。 例如那本 《JavaScript高级程序设计(第2版)》 http://product.dangdang.com/product.aspx?product_id=20884225非常有必要全部通读一遍
解决方案五:
朋友,具体使用要看你的实际情况,你的代码结构,你的编程风格;我只是给了你一个 function,剩下的就要靠你自己啦。
解决方案六:
如果你是单独的程序需要这么定义var clone = function (jsonObj)不能是 clone: function(jsonObj)
解决方案七:
又试验了一次,能看到了,估计 csdn的图片做了限制,判断referer 了。不让别的地方引用。图片我看到了,你这种复制的要求,只能你自己处理了,因为规则太泛泛了。只看你目前这个图片上的例子,可以直接 clone 最上一级的节点即可,然后需要遍历下面所有的子孙节点,将其中没有勾选的节点删除。
解决方案八:
email给我吧,不知道是csdn的问题还是iteye的问题,你那两张图,我复制地址,能看到第一张,第二张得到的是 forbidden 。。。 实在无法解答。给我email时,带上两张图片,再把你的要求详细说明一下。
解决方案九:
朋友,我是说你的图片看不到,我没办法帮助你解答问题哟。。你怎么把我的问题补充进去了?
解决方案十:
图片看不到。。为什么?