zTree 构建类似下拉选择的 树形结构

zTree -- jQuery 树插件  :http://www.treejs.cn/v3/main.php#_zTreeInfo

下载地址:https://gitee.com/zTree/zTree_v3

效果:

      

下载的拓展包中包含了文档示例等等,这里暂时只用到了下面的两个文件。

引入文件:

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

<script type="text/javascript" src="js/zTree/js/jquery.ztree.core.js"></script>

 

样式代码:

<div style="position: relative;">
   <!-- 模拟select点击框 以及option的text值显示 有兴趣的可以加个小三角-->
   <input id="orgName" placeholder="选择部门" class="org-select" style="cursor: default;z-index: -1;width:150px;"  readonly >

   <!-- 存储 模拟select的value值 -->
   <input id="orgCode" class="QItem" type="hidden" name="cDepCoding" />

   <!-- zTree树状图 相对定位在其下方 -->
   <div class="ztree" id="ztreeTest"  style="display:none;height: 350px; position: absolute;border:1px solid #4aa5ff;width:200px; background: white; z-index: 99;overflow:auto">
       <ul id="treeDemo" style="display: block; float: left;"></ul>
   </div>
</div>

JS代码:

/**************************树形部门选择**************************/
// 输入框的点击显示隐藏树状图
$('#orgName').click(function (ret) {
    if($('.ztree').css('display') == 'none'){
        $('.ztree').css('display','block');
    } else{
        $('.ztree').css('display','none');
    }
    $("body").bind("mousedown", onBodyDownByActionType);
});
// 点击其他地方隐藏树状图
function onBodyDownByActionType(event) {
    if (event.target.id.indexOf('treeDemo') == -1){
        if (event.target.id != 'ztreeTest'){
            if(event.target.id != 'orgName'){
                hideTree();
            }
        }
    }
}
// 隐藏树状图
function hideTree() {
    $('.ztree').css('display','none');
    $("body").unbind("mousedown", onBodyDownByActionType);
    return false;
}
// 点击子元素的回调
function zTreeOnClick(event, treeId, treeNode) {
    $('#orgName').val(treeNode.name);  // 将点击的节点的数据传至页面
    $('#orgCode').val(treeNode.cDepCoding);
    hideTree();    
}
function zTreeBeforeClick(treeId, treeNode, clickFlag) {
    return (treeNode.id !== 1);
}
// 显示的数据
var nodes = [
    {'cDepCoding':'0','cDepParent':'','name':'总部'},
    {'cDepCoding':'01','cDepParent':'0','name':'一分公司'},
    {'cDepCoding':'02','cDepParent':'0','name':'二分公司'},
    {'cDepCoding':'0101','cDepParent':'01','name':'一分公司一部'},
    {'cDepCoding':'0102','cDepParent':'01','name':'一分公司二部'},
    {'cDepCoding':'0103','cDepParent':'01','name':'一分公司三部'},
    {'cDepCoding':'0201','cDepParent':'02','name':'二分公司一部'},
    {'cDepCoding':'0202','cDepParent':'02','name':'二分公司二部'}
];
var setting = {
    data: {
        simpleData: {
            enable: true,
            idKey: "cDepCoding", //树节点ID名称
            pIdKey: "cDepParent", //父节点ID名称
            rootPId: 0,           //根节点ID
        }
    },
    view: {
        showLine : true,                  //是否显示节点间的连线
    },
    //回调
    callback: {
        beforeClick:zTreeBeforeClick, //捕获单击节点之前的事件回调函数,并且根据返回值确定是否允许单击操作
        onClick: zTreeOnClick         // 捕获节点被点击的事件回调函数
    }
};
//初始组织树状图
$(document).ready(function () {
    $.fn.zTree.init($("#treeDemo"), setting, nodes);
});

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值