在zTree下,如图所示:
[img]http://hi.csdn.net/attachment/201109/14/51138_131596519929ZS.jpg[/img]
[img]http://hi.csdn.net/attachment/201109/14/51138_1315965203vbc3.jpg[/img]
怎么将已经勾选的节点重新复制一份?
你到底如何挑选需要复制的节点,那是你的规则,我就不写例子了;
另外复制节点数据后新添加数据使用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;
}
}
图片看不到。。为什么?
朋友,我是说你的图片看不到,我没办法帮助你解答问题哟。。你怎么把我的问题补充进去了?
email给我吧,不知道是csdn的问题还是iteye的问题,你那两张图,我复制地址,能看到第一张,第二张得到的是 forbidden 。。。 实在无法解答。
给我email时,带上两张图片,再把你的要求详细说明一下。
又试验了一次,能看到了,估计 csdn的图片做了限制,判断referer 了。不让别的地方引用。
图片我看到了,你这种复制的要求,只能你自己处理了,因为规则太泛泛了。只看你目前这个图片上的例子,可以直接 clone 最上一级的节点即可,然后需要遍历下面所有的子孙节点,将其中没有勾选的节点删除。
如果你是单独的程序需要这么定义
var clone = function (jsonObj)
不能是 clone: function(jsonObj)
朋友,具体使用要看你的实际情况,你的代码结构,你的编程风格;我只是给了你一个 function,剩下的就要靠你自己啦。
基础问题还需要你多学习巩固, 大家时间都是有限的,不可能所有问题都逐一详细解答的。希望你能理解。
关于这个问题,请你注意, 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
非常有必要全部通读一遍
hoho,你不看我给你写的clone方法呀,我修改后的clone方法,在复制的时候,就已经把未被勾选的节点删除了,你不需要自己再重新递归遍历删除的。
还有呀,难道你每次回复真的就要 给这个问题盖楼吗?? 我觉得太夸张了,呵呵