一个做.NET WEB开发的朋友介绍了ZTREE,它是基于JQUERY库开发的树型控件。于是去官方下了一个开发包,看了看DEMO,觉得效果很不错,自己也做了个小例子,也许不太成形,效果倒是展现出来了,把使用方法记录下来,和大家分享分享。
1、新建了一个HTML在<head>标签内导入需要的JS和CSS文件。
- <script language="javascript" type="text/javascript" src="js/jquery-1.6.4.js"></script>
- <script language="javascript" type="text/javascript" src="js/jquery.ztree.core-3.0.js"></script>
- <link type="text/css" rel="stylesheet" href="css/zTreeStyle/zTreeStyle.css" />
- <script language="javascript" type="text/javascript" src="js/jquery.ztree.excheck-3.0.js"></script>
我这里使用的是jquery1.6.4,jquery的开发包这是必须的,然后导入ztree.core核心包,这里使用的是ztree-3.0还是beta版本的。呵呵,ztree.excheck-3.0这是升级树控件,比如加上checkbox这些。
2、<script>部分就直接贴代码了
- <script type="text/javascript" language="javascript">
- /**ztree的参数配置,setting主要是设置一些tree的属性,是本地数据源,还是远程,动画效果,是否含有复选框等等**/
- var setting = {
- check: { /**复选框**/
- enable: false,
- chkboxType: {"Y":"", "N":""}
- },
- view: {
- //dblClickExpand: false,
- expandSpeed: 300 //设置树展开的动画速度,IE6下面没效果,
- },
- data: {
- simpleData: { //简单的数据源,一般开发中都是从数据库里读取,API有介绍,这里只是本地的
- enable: true,
- idKey: "id", //id和pid,这里不用多说了吧,树的目录级别
- pIdKey: "pId",
- rootPId: 0 //根节点
- }
- },
- callback: { /**回调函数的设置,随便写了两个**/
- beforeClick: beforeClick,
- onCheck: onCheck
- }
- };
- function beforeClick(treeId, treeNode) {
- alert("beforeClick");
- }
- function onCheck(e, treeId, treeNode) {
- alert("onCheck");
- }
- var citynodes = [ /**自定义的数据源,ztree支持json,数组,xml等格式的**/
- {id:0, pId:-1, name:"中国"},
- {id:1, pId:0, name:"北京"},
- {id:2, pId:0, name:"天津"},
- {id:3, pId:0, name:"上海"},
- {id:6, pId:0, name:"重庆"},
- {id:4, pId:0, name:"河北省", open:false, nocheck:true},
- {id:41, pId:4, name:"石家庄"},
- {id:42, pId:4, name:"保定"},
- {id:43, pId:4, name:"邯郸"},
- {id:44, pId:4, name:"承德"},
- {id:5, pId:0, name:"广东省", open:false, nocheck:true},
- {id:51, pId:5, name:"广州"},
- {id:52, pId:5, name:"深圳"},
- {id:53, pId:5, name:"东莞"},
- {id:54, pId:5, name:"佛山"},
- {id:6, pId:0, name:"福建省", open:false, nocheck:true},
- {id:61, pId:6, name:"福州"},
- {id:62, pId:6, name:"厦门"},
- {id:63, pId:6, name:"泉州"},
- {id:64, pId:6, name:"三明"},
- {id:7, pId:0, name:"四川省", open:true, nocheck:true},
- {id:71, pId:7, name:"成都"},
- {id:72, pId:7, name:"绵阳"},
- {id:73, pId:7, name:"自贡"},
- {id:711, pId:71, name:"金牛区"},
- {id:712, pId:71, name:"锦江区"},
- {id:7111, pId:711, name:"九里堤"},
- {id:7112, pId:711, name:"火车北站"}
- ];
- $(document).ready(function(){//初始化ztree对象
- var zTreeDemo = $.fn.zTree.init($("#cityTree"),setting, citynodes);
- });
- </script>
3、body部分,就一个
- <ul id="cityTree" class="ztree"></ul>
4、当异步获取数据库的数据时,我们需要修改setting设置,也是返回的数组形式的数据:
- var setting = {
- async: {
- enable: true,
- type:'post',
- url:"treedata.jsp"
- ///dataFilter: filter
- },
- data: {
- simpleData: { //简单的数据源,一般开发中都是从数据库里读取,API有介绍,这里只是本地的
- enable: true,
- idKey: "id", //id和pid,这里不用多说了吧,树的目录级别
- pIdKey: "pId",
- rootPId: 0 //根节点
- }
- },
- callback: {
- onAsyncSuccess: zTreeOnAsyncSuccess /**回调函数的设置,异步提交成功的回调函数**/
- }
- };
- $(document).ready(function(){//初始化ztree对象
- $.fn.zTree.init($("#cityTree"), setting);
- });