大家好,今天小编来为大家解答ztree这个问题,ztree循环很多人还不知道,现在让我们一起来看看吧!

treegrid和ztree的区别

treegrid和ztree的区别

个人觉得Ztree比较好用一些首先treeView是无序灵活的可摺叠的树形选单,只试用于一些选单的导航。Ztree就比较强大了;

ztree,ztree循环

灵活的编辑(增/删/改/查)功能,可随意拖拽节点,还可以多节点拖拽哟

简单的引数配置实现灵活多变的功能

在一个页面内可同时生成多个 Tree例项

相容 IE、FireFox、Chrome、Opera、Safari等浏览器

支援 JSON资料

ztree,ztree循环

采用了延迟载入技术,上万节点轻松载入,即使在 IE6下也能基本做到秒杀

支援任意更换面板/自定义图示(依靠css)

提供多种事件响应回拨

支援极其灵活的 checkbox或 radio选择功能</ol>所以建议使用过程中,选择ztree比较好

jquery,ztree,core-3,5,js和 jquery,ztree,core-3,5,min,js的区别

一个是没有压缩的,一个是压缩过的程式码

你可以用记事本开启看看

ztree中的jquery.js和最新版有什么区别

不清楚啊,如果要用ztree的话,把你使用的jquery库换成ztree的呗,这样能减少一些不必要的麻烦

jquery easyui datagrid与 treegrid有什么区别现在上班的时候有时候用datagrid有时候用treegrid

dataGrid就是普通的显示列表表格,TreeGrid是树形表格,有父类和子类之分……

喜欢和爱的区别讨厌和恨的区别?

喜欢代表有好感,这个人符合你的审美观,你有想靠近对方的想法,但这这种好感还没有太强烈;爱是喜欢的升级版,爱是两个人的事,相互之间都有着强烈的感情,互相离不开彼此,希望对方过得很好,已经成为生活中的一部分。讨厌是你不喜欢那个人,但是却没有报复和强烈的仇视想法;而恨不仅仅讨厌对方,还有一种想要报复和极度仇视的心理存在。

rapper和hip-hopper的区别?有区别吗

hip-hopper是rapper中一种

AFP和CFP的区别 4大明显区别

AFP,考试只考金融基础知识一,金融基础知识二

CFP,考的是个税,综合案例,投资,员工福利,保险,五科~~~

AFP是CFP认证体系之一,现如今在银行已经被列为基本持证之一,而CFP持证人,则是在现在,也是未来即将爆发的人才计划,无论跳槽,转岗,加薪,C自然优于A

AFP通过培训学习,一个半月就考出,而CFP,在这里,零基础最快也要三个多月,~~~~

thought和but,or和and的区别

你想写的应该是though吧though是尽管的意思,是副词,引导让步状语从句,可放句首或句中,但是不能和but连用but是但是的意思,是连词,连线两个并列句,中间用逗号隔开,表示转折;but也有除了的意思or是或者,连词,有选择的意思,通常否定句中连词用or,肯定句中连词用and,但是也有特殊情况在否定中并列结构用or连线,但含有两个否定词的句子实际被看作是肯定结构,因此要用and。or还有否则的意思。and意思就不用我说了是连词,表并列的,可连线单词,从句

撙和盏的区别樽和盏的区别是什么

读音:[zūn]

部首:木五笔:SUSF

释义:古代盛酒的器具。

读音:[zhǎn]

部首:皿五笔:GLF

释义:1.小杯子。 2.指油灯盛油的浅盆。 3.量词,指灯。

chemistry和reactions的区别chemistry和reactions的区别是什么

从英语名称来理解,pharmaceutical chemistry和 medicinal chemistry都是药物化学。但他们的方向却是不一样的。

现在国外药物化学已经分化成两门侧重点不同的专业课程:以发展新药为主要目标的药物化学(Medicinal Chemistry)和以临床应用、药学服务为主的药物化学(Pharmaceutical Chemistry)。

Medicinal Chemistry侧重发展研发新药,而Pharmaceutical Chemistry则是为药物提供载体材料,甚至医用缝合矫形辅助康复材料都应该属于这个范畴的。

ztree怎么自定义图标

样式定义在metro.css文件里(或者是zTreeStyle.css……),其中可加载单个的图片,也可以从一张图片中根据坐标获取我们要用的图形。对metro.css比较重要的一个图片是metro.png,在图片中每个小方格是5px,在css中加载时按照横纵坐标进行图标的获取。

在ztree中,css主要用了两种方式来加载图标。第一种:根据背景图,图标大小,和坐标位置

第二种:直接加载图片

这两种方式,第二种比较常用,但是对于数据量大的情况,第一种方法貌似更好。对于我们想要修改的元素,可以先在网页中定位一下,找到它具体的class,然后来这里更改就可以了。

3.Bootstrap风格装饰ztree

以最近很流行的Bootstrap为例,给ztree装饰成Bootstrap的风格。上边我们已经分析过ztree是如何设定样式,这里我们只需要任选其一做更改就行了,鉴于它使用了大量以背景图片为基础的图标设定,我们最好还是设定成直接加载图片的比较方便,要不然改的数据太多了……

1)ztree也有黑白色的css、png成套的样式设置,为了更符合Bootstrap的图标样式,让它替换掉原有的css文件和彩色图标

如果页面框架是Bootstrap的,则在显示的时候根节点的图标是“破碎”的,经过查找发现,是根节点图标位置受到Bootstrap的影响,在css文件中找到设置它的位置,进行坐标更改

2)上边的步骤只能算是在ztree内部设定,还不算加上Boostrap的风格。不过,我们只需要再给它更换一个图标,看起来就有那么点味道了(为了展示方便,进行了换行处理)

这样就是另一种风格了,如果你想要自定义其它风格,根据上边的demo来做,应该不算什么难事了。

小结:

ztree中有自定义图标的方法,但是在遇到图标显示不完整的时候还是没办法解决,最后更改了css文件才让图标显示完整。在解决这个问题的过程中了解了ztree图标的加载过程,所有顺便练练手,直接从CSS来给ztree换了个风格。

ztree移动时判断是否是同级移动

您好,1、ztree中节点是通过一个json的Array作为数据源、,所以直接操作json字符串,然后转为json对象数组。

2、然后用新构成的json数组对象重新初始化ztree对象。

复制代码代码如下:

<link rel="stylesheet" href="demo.css" type="text/css">

<link rel="stylesheet" href="zTreeStyle.css" type="text/css">

<script type="text/javascript" src="jquery-1.4.4.min.js"></script>

<script type="text/javascript" src="jquery.ztree.core-3.5(1).js"></script>

<script type="text/javascript">

var zTreeObj1;

var zTreeObj2;

var leftDivStr="[";

var rightDivStr="[";

var setting={

edit:{

enable: false,

showRemoveBtn: false,

showRenameBtn: false

},

data:{

simpleData:{

enable: true

}

},

callback:{

//onClick: menuOnClick

}

};

function menuOnClick(event, treeId, treeNode, clickFlag){

}

//注册toSource函数,解决ie不支持Array的toSource()方法的问题

Array.prototype.toSource= function(){

var str="[";

for(var i= 0;i<this.length;i++){

str+="{id:\""+this[i].id+

"\",pId:\""+this[i].pId

+"\",name:\""+this[i].name

+"\",isParent:\""+this[i].isParent

+"\",file:\""+this[i].file

+"\",icon:\""+this[i].icon

+"\",open:\""+this[i].open

+"\"},";

}

if(this.length!= 0){

str= str.substring(0, str.length-1);

}

str+="]";

return str;

};

//注册unique函数,去掉array中重复的对象(id相同即为同一对象)

Array.prototype.unique= function(){

var r= new Array();

label:for(var i= 0, n= this.length; i< n; i++){

for(var x= 0, y= r.length; x< y; x++){

if(r[x].id== this[i].id){

continue label;

}

}

r[r.length]= this[i];

}

return r;

};

//初始数据

var zNodes=[

{ id:1, pId:0, name:"父节点 1", open:true},

{ id:11, pId:1, name:"叶子节点 1-1",open:true},

{ id:111, pId:11, name:"叶子节点 11-1"},

{ id:112, pId:11, name:"叶子节点 11-2"},

{ id:12, pId:1, name:"叶子节点 1-2",open:true},

{ id:121, pId:12, name:"叶子节点 12-1"},

{ id:122, pId:12, name:"叶子节点 12-2"},

{ id:13, pId:1, name:"叶子节点 1-3"},

{ id:2, pId:0, name:"父节点 2", open:true},

{ id:21, pId:2, name:"叶子节点 2-1"},

{ id:22, pId:2, name:"叶子节点 2-2"},

{ id:23, pId:2, name:"叶子节点 2-3"},

{ id:3, pId:0, name:"父节点 3", open:true},

{ id:31, pId:3, name:"叶子节点 3-1"},

{ id:32, pId:3, name:"叶子节点 3-2"},

{ id:33, pId:3, name:"叶子节点 3-3"}

];

for(var i=0;i<zNodes.length;i++){

leftDivStr+="{id:"+zNodes[i].id+",pId:"+zNodes[i].pId+",name:\""+zNodes[i].name+"\",open:"+zNodes[i].open+"},";

}

leftDivStr= leftDivStr.substring(0,leftDivStr.length-1);

leftDivStr+="]";

rightDivStr+="]";

//查找被移动节点的所有父节点

function findParentNodes(treeNode, parentNodes){

parentNodes+="{id:"+treeNode.id+",pId:"+treeNode.pId+

",name:\""+treeNode.name+"\",open:"+treeNode.open+"},";

if(treeNode!= null&& treeNode.getParentNode()!= null){

parentNodes=findParentNodes(treeNode.getParentNode(),parentNodes);

}

return parentNodes;

}

//移动节点

function moveNodes(zTreeFrom,treeNode,zTreeTo,divStrFrom,divStrTo){

/////////////////////////////////treeNode的所有父节点

var parentNodes="[";

if(treeNode.pId!= null){

parentNodes= findParentNodes(treeNode,parentNodes);

parentNodes= parentNodes.substring(0,parentNodes.length-1);

}

parentNodes+="]";

//alert(parentNodes);

var parentNodesArray= eval(parentNodes);

///////////////////////////////

var nodes="[";

nodes+="{id:"+treeNode.id+",pId:"+treeNode.pId+",name:\""+treeNode.name+"\",open:"+treeNode.open+"},";

nodes= operChildrenNodes(treeNode,nodes);

nodes= nodes.substring(0,nodes.length-1);

nodes+="]";

var nodesArray= eval(nodes);

var divFromArray= eval(divStrFrom);

var divToArray= eval(divStrTo);

for(var i= 0;i<nodesArray.length;i++){//删除节点

for(var j= 0;j<divFromArray.length;j++){

if(divFromArray[j].id== nodesArray[i].id){

divFromArray.splice(j,1);

}

}

}

divToArray= divToArray.concat(nodesArray);//增加节点

divToArray= divToArray.concat(parentNodesArray);

///////////////////////////////////////////////////////////////////////////////////////去重复

divFromArray= divFromArray.unique();

divToArray= divToArray.unique();

///////////////////////////////////////////////////////////////////////////////////////////去重复

if(zTreeFrom.setting.treeId=="treeDemo"){

leftDivStr= divFromArray.toSource();

rightDivStr=divToArray.toSource();

$.fn.zTree.init($("#treeDemo"), setting, divFromArray);

$.fn.zTree.init($("#treeDemo2"), setting,divToArray);

}else{

leftDivStr= divToArray.toSource();

rightDivStr=divFromArray.toSource();

$.fn.zTree.init($("#treeDemo2"), setting, divFromArray);

$.fn.zTree.init($("#treeDemo"), setting,divToArray);

}

}

//查找指定节点下的所有子节点

function operChildrenNodes(treeNode,nodes){

if(treeNode.children!= undefined){//是父节点,有子节点

for(var j= 0;j<treeNode.children.length;j++){

var childNode= treeNode.children[j];

nodes+="{id:"+childNode.id+",pId:"+childNode.pId+",name:\""+childNode.name+"\",open:"+childNode.open+"},";

nodes= operChildrenNodes(childNode,nodes);

}

}else{//没子节点

}

return nodes;

}

$(document).ready(function(){

zTreeObj1=$.fn.zTree.init($("#treeDemo"), setting, zNodes);

zTreeObj2=$.fn.zTree.init($("#treeDemo2"), setting);

$(function(){

$("#toRight").click(function(){

moveNodes(zTreeObj1,zTreeObj1.getSelectedNodes()[0],zTreeObj2,leftDivStr,rightDivStr);

});

$("#toLeft").click(function(){

moveNodes(zTreeObj2,zTreeObj2.getSelectedNodes()[0],zTreeObj1,rightDivStr,leftDivStr);

});

$("#show").click(function(){

var leftDiv= new Array();

var leftDivStrArray= eval(leftDivStr);

for(var i= 0;i<leftDivStrArray.length;i++){

leftDiv[i]= leftDivStrArray[i].id;

}

var rightDivStrArray= eval(rightDivStr);

var rightDiv= new Array();

for(var i= 0;i<rightDivStrArray.length;i++){

rightDiv[i]= rightDivStrArray[i].id;

}

alert(leftDiv);

alert(rightDiv);

});

});

});

</script>

html代码:

复制代码代码如下:

<body style="cursor: auto;">

<div class="content_wrap">

<div class="zTreeDemoBackground left">

<ul id="treeDemo" class="ztree"></ul>

</div>

<button id="toRight">>></button>

<button id="toLeft"><<</button>

<button id="show">show</button>

<div class="right">

<ul id="treeDemo2" class="ztree"></ul>

</div>

</div>

</body>