zTree的理解

<span style="font-size:14px;">var setting = {
	async: {
		enable: true,      //可编辑(false不可编辑)
		contentType: "application/json",  //ajax提交参数的数据类型
		url: "http://host/getNode.php",   //ajax获取数据的地址
		autoParam: ["id"],        //异步加载时需要自动提交父节点属性的参数</span><h3>             <!-- Array(String) 格式说明</h3><div class="desc"><p>                1、将需要作为参数提交的属性名称,制作成 Array 即可,例如:["id", "name"]</p><p>                2、可以设置提交时的参数名称,例如 server 只接受 zId : ["id=zId"]</p><p>               --></p><p>               dataType:"text",   //Ajax 获取的数据类型           <pre><code>               otherParam: ["id", "1", "name", "test"], //Ajax 请求提交的静态参数键值对,可以为空[ ](默认值),
               如果有 key,则必须存在 value。 例如:[key, value].
               直接用 JSON 格式制作键值对,例如:{ key1:value1, key2:value2 }</code>
               type:"post",//Ajax 的 http 请求模式
               dataFilter:ajaxDataFilter     //用于对 Ajax 返回数据进行预处理的函数

}
callback:{//回调函数,太多了,举几个我这两天遇到的例子
beforeClick: zTreeBeforeClick, //用于捕获单击节点之前的事件回调函数,并且根据返回值确定是否允许单击操作

beforeAsync:zTreeBeforeAsync, //用于捕获异步加载之前的事件回调函数,zTree 根据返回值确定是否允许进行异步加载

......此处省略很多,可以看zTree API(D://lucky/cctWeb/zTree----)
}
view:{
addHoverDom: addHoverDom , //

用于当鼠标移动到节点上时,显示用户自定义控件,显示隐藏状态同 zTree 内部的编辑、删除按钮

请务必与 setting.view.removeHoverDom 同时使用;属于高级应用,使用时请确保对 zTree 比较了解。

removeHoverDom: removeHoverDom //


}

 };
function addHoverDom(treeId, treeNode) {
            var sObj = $("#" + treeNode.tId + "_span");// ( id+_span为树的样式id名)
            if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
            var addStr = "<span class='button edit' id='editBtn_" + treeNode.tId
                + "' title='add node' οnfοcus='this.blur();'></span>"+
                "<span class='button add' id='addBtn_" + treeNode.tId
                + "' title='add node' οnfοcus='this.blur();'></span>";
            if(treeNode.level>=1)//(蓝色为样式,红色id,为了后面remove)
               sObj.after(addStr);//在鼠标扫过的后面加上编辑和增加按钮
            var btn = $("#addBtn_"+treeNode.tId);
            if (btn) btn.bind("click", function(){//点击按钮
                
                var addressName = getAddressName(treeNode);
                if(treeNode.level==0){
                    var s = connectionString(a1,treeNode,addressName);
                    $("#formArea").html(s);
                }else if(treeNode.level==1){
                    var s = connectionString(a2,treeNode,addressName);
                    $("#formArea").html(s);
                }else if(treeNode.level==2){
                    var s = connectionString(a3,treeNode,addressName);
                    $("#formArea").html(s);
                }else if(treeNode.level==3){
                    var s = connectionString(a4,treeNode,addressName);
                    $("#formArea").html(s);
                }else if(treeNode.level==4){
                    var s = connectionString(a5,treeNode,addressName);
                    $("#formArea").html(s);
                }else if(treeNode.level==5){
                    var s = form2String(treeNode.id,addressName,treeNode.addressLevel+1);
                    $("#formArea").html(s);
                }
                $("#addModal").modal();
                return false;
            });
            
            var editBtn = $("#editBtn_"+treeNode.tId);
            if (editBtn) editBtn.bind("click", function(){
                
                var addressName = getAddressName(treeNode);
                if(treeNode.level==0){
                    $("#showArea").html("");
                }else if(treeNode.level==1){
                    var s1 = getForm1String("省份",treeNode.name,treeNode.remarks,treeNode.id,treeNode.level+1,addressName);
                    $("#showArea").html(s1);
                }else if(treeNode.level==2){
                    var s1 = getForm1String("市县",treeNode.name,treeNode.remarks,treeNode.id,treeNode.level+1,addressName);
                    $("#showArea").html(s1);
                }else if(treeNode.level==3){
                    var s1 = getForm1String("行政区",treeNode.name,treeNode.remarks,treeNode.id,treeNode.level+1,addressName);
                    $("#showArea").html(s1);
                }else if(treeNode.level==4){
                    var s1 = getForm1String("小区/街道",treeNode.name,treeNode.remarks,treeNode.id,treeNode.level+1,addressName);
                    $("#showArea").html(s1);
                }else if(treeNode.level==5){
                    var s1 = getForm1String("单元",treeNode.name,treeNode.remarks,treeNode.id);
                    $("#showArea").html(s1);
                }
                $("#editModal").modal();此id为模态框id
                return false;
                
            });
        };
        function removeHoverDom(treeId, treeNode) {
            $("#addBtn_"+treeNode.tId).unbind().remove();
            $("#editBtn_"+treeNode.tId).unbind().remove();
        };
function ajaxDataFilter(treeId, parentNode, responseData) {//修改异步获取的name的值
    if (responseData) {
      for(var i =0; i < responseData.length; i++) {
        responseData[i].name += "_filter";//replace
      }
    }
    return responseData;
};
function zTreeBeforeClick(treeId, treeNode, clickFlag) {//禁止节点被选中
    return (treeNode.id !== 1);
};
function zTreeBeforeAsync(treeId, treeNode) {//禁止父节点为 1 的父节点进行异步操作
    return (treeNode.id !== 1);
};
整棵树有很多很多的内容,要熟练应用的话就是学会根据API自己写代码


 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
AngularJS是一种用于构建Web应用程序的开源JavaScript框架,而zTree是一个基于jQuery的树状结构插件。AngularJS和zTree可以结合使用来创建一个具有树形结构的交互式页面。 AngularJS使用其强大的数据绑定和指令系统来处理页面的渲染和逻辑控制,而zTree则可以帮助我们以树状结构展示和管理数据。通过将这两者结合在一起,我们可以实现一个具有树形结构的动态页面,可以根据所选节点的变化来展示对应的数据。 使用AngularJS与zTree的过程如下: 1. 引入必要的依赖:在项目中引入AngularJS和zTree的相关文件,例如angular.min.js和ztree.js。 2. 初始化AngularJS应用程序:在HTML页面中使用ng-app指令来初始化AngularJS应用程序。 3. 创建树形结构的容器:在HTML页面中创建一个容器元素,用来展示zTree的树形结构。 4. 使用AngularJS指令来加载和渲染zTree: 在AngularJS应用程序中使用自定义的指令来加载和渲染zTree。可以定义一个指令来处理zTree的初始化和数据加载,并将zTree的实例绑定到$scope中。 5. 处理zTree的事件和交互:通过使用AngularJS的数据绑定,我们可以将zTree的节点选择事件绑定到$scope中的一个函数上,以便在节点选择时触发相应的逻辑。 通过结合AngularJS和zTree,我们可以轻松地创建一个具有树形结构的页面,实现数据的展示和交互。这对于需要展示层次结构数据的应用程序来说是非常有用的,例如文件浏览器或组织架构图等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值