将zTree放在一个iframe里
zTreeObj = $("#treeDemo")zTree(setting, zNodes);
如果在当前页面的话,通过var nodes = zTreeObjgetCheckedNodes(); 即可
那么点击父页面的按钮,如何得到zTree已选中的节点?
假设iframe的id和name为aa(id和name都设置,兼容性问题)
windowframes['aa']windowzTreeObjgetCheckedNodes();
var setting = {
data: {
simpleData: {
enable: true
}
},
view: {
showIcon: false
},
callback:{
onClick:function zTreeOnClick(event, treeId, treeNode){
alert(treeNodetId + ", " + treeNodename+", "+treeId);
var ids=[];
ids=getChildren(ids,treeNode);
}
},
check: {
enable: true,
autoCheckTrigger:false,
chkboxType:{ "Y":"ps", "N":"ps" }
}
};
//ids是一个数组 返回结果数组 treeNode是选中的节点
function getChildren(ids,treeNode){
idspush(treeNodeid);
if (treeNodeisParent){
for(var obj in treeNodechildren){
getChildren(ids,treeNodechildren[obj]);
}
}
return ids;
}
根据id 查找节点,不是一个一个找,还想怎么找?? 我不太明白呀。 或者说你这一批节点有某个共性的特征,直接利用那个特征属性查找也可以呀。 找一批节点也可以利用 getNodesByFilter 这个灵活的查找方法
var zTree = $fnzTreegetZTreeObj('tree'); // 获取zTree对象,tree是你存放ztree的容器id
## 接下来你若刷新你修改的部分的话,修改一般使用了 beforeRename 或 onRename
##1、upDateNode(node) // 此方法更新单个节点,需要注意的是,发现这个方法必须要在ajax或是post之类的请求中才能刷新成功。
比如第一种情况,直接调用:
beforeRename(treeid,node,newName){
var zTree = $fnzTreegetZTreeObj('tree');
nodename = newName + "123"; // 此处手动修改了node的名字
zTreeupDateNode(node); // 执行完会发现并没有刷新出来,打印node发现名字确实改了。
}
第二种情况,套在ajax中使用:
beforeRename(treeid,node,newName){
$post(url,{},function(){
var zTree = $fnzTreegetZTreeObj('tree');
nodename = newName + "123"; // 此处手动修改了node的名字
zTreeupDateNode(node); // 执行完节点名字刷新成功
});
}
##2、reAsyncChildNodes(node,type,open) // 此方法更新node节点及其子节点,node参数传null时更新整个树,用法跟上面一样,主要说明另两个参数:
type:直接传refresh 相当于清空后重新加载一下,变相刷新,一般用于修改过子节点。 不等于refresh时一般用于新增过子节点,
open:true时不展开该节点,不等于true或不传默认是展开
以上就是关于请问该怎么从iframe中获取父页面上的ztree对象全部的内容,包括:请问该怎么从iframe中获取父页面上的ztree对象、ztree怎么获取当前节点下的子节点、如何根据id获取ztree节点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)