jquery.ztree.all-3.5.min.js

http://www.ztree.me/v3/main.php 这个是ztree的官网,里面有很多实用的小例子,参考这些例子来学习,能少走不少弯路(下载的ztree里也有demo可以参考,一样的东西)。

1. jsp方面

页面导入js,css如下:

<link rel="stylesheet" type="text/css" href="<%=path %>/css/zTreeStyle/zTreeStyle.css">
 <script type="text/javascript" src="<%=path %>/js/jquery-1.4.4.min.js"></script>
 <script type="text/javascript" src="<%=path %>/js/jquery.ztree.all-3.5.min.js"></script>

设置setting属性和节点数组

<script type="text/javascript">
 var setting = {
   check: {
    enable: true,
    nocheckInherit: true
   },
   data: {
    simpleData: {
     enable: true
    }
   }
  };
  var zNodes =[
   { id:1, pId:0, name:"随意勾选 1", open:true},
   { id:11, pId:1, name:"随意勾选 1-1", open:true},
   { id:111, pId:11, name:"无 checkbox 1-1-1", nocheck:true},
   { id:112, pId:11, name:"随意勾选 1-1-2"},
   { id:12, pId:1, name:"无 checkbox 1-2", nocheck:true, open:true},
   { id:121, pId:12, name:"无 checkbox 1-2-1"},
   { id:122, pId:12, name:"无 checkbox 1-2-2"},
   { id:2, pId:0, name:"随意勾选 2", checked:true, open:true},
   { id:21, pId:2, name:"随意勾选 2-1"},
   { id:22, pId:2, name:"随意勾选 2-2", open:true},
   { id:221, pId:22, name:"随意勾选 2-2-1", checked:true},
   { id:222, pId:22, name:"随意勾选 2-2-2"},
   { id:23, pId:2, name:"随意勾选 2-3"}
  ];
 </script>

调用方法生成树

<script type="text/javascript">
 $(function(){
  //alert($("#ztree").zTree);
  //ztree=$("#ztree").zTree(settting,treeNodes);
  $.fn.zTree.init($("#ztree"), setting, zNodes);
 });
 </script>

body里有个id为ztree的元素

<body>
    <div class="zTreeDemoBackground left">
  <ul id="ztree" class="ztree"></ul>

 </div>



下面写一个含有ajax的例子

var $bookCatalogTreeList = $("#bookCatalogTreeList");
var setting = {
data: {
simpleData: {
enable: true,   //如果这个设置了true下面的三个是必填的。
idKey: "gid",    //主键
pIdKey: "parentId",  //父亲对象的id.如果他们这个值相同那么他们是同一个父亲的子集。可以根据这个pIdKey找到对对应的idKey、就是他的父亲
rootPId: "null"
}
},
callback: {
onClick:  zTreeOnClick   点击树节点所触发的事件zTreeOnClick是个函数
}

};


下面读数据

$.ajax({

                       url: "com.cloud.resource.service.impl.ResourceRs.findCatalogByBookId(bookId)",
data: {
bookId: bookGid
},
success: function(resdata, textStatus, jqXHRult){
if(resdata != null){
treeObj = $.fn.zTree.init($bookCatalogTreeList, setting, resdata);
}
}

});


获取当前被选中的节点数据集合。。可以把你点击选中的那个内容显示出来

                var nodes = treeObj.getSelectedNodes();

if(nodes.length > 0){
var nodeGid = nodes[0].gid;

var nodeName = nodes[0].name;

                                        $("#catalogGid").val(nodeGid);

$("#catalogName").val(nodeName);

                         }



碰到的问题。如果数据里面要显示的不是name的值,而是其他参数名怎么办呢?

var setting = {
data: {
simpleData: {
enable: true,
idKey: "GID",
pIdKey: "PARENTGID",
rootPId: "null"
},
key : {
name : "NAME",    加上这个就可以啦,代表显示的名字是NAME这个参数
},

},
callback: {
onClick:  zTreeOnClick
},
view : {
showIcon: false
}

};


点击某个子节点获取他的父节点。

callback: {onClick:  zTreeOnClick   点击树节点所触发的事件zTreeOnClick是个函数}

在这个点击事件里面获取

function  zTreeOnClick(){

var nodes = treeObj.getSelectedNodes();
if (nodes[0].isParent==true){//点的这个是父级。
return;
}
     else{
if(nodes.length > 0){

var gid = nodes[0].GID;  

                               var parentItem=nodes[0].getParentNode();   //父节点

                               var orgParentName=parentItem.NAME;   //父节点的名字


}

点击节点前的符号也能触发点击这个树的事件

因为我是通过ajax添加的树,所以要用live来绑定。

$("#bookCatalogTreeList .switch.button").die().live("click",function(){
     $(this).siblings("a").trigger("click");   // 页面已经写了function  zTreeOnClick()这个点击树节点的函数了,所以这里就直接触发,但是不知道是哪个a标签,所以不能zTreeOnClick()
});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值