zTree基本使用

zTree使用

zTree 是一个依靠 jQuery 实现的多功能 “树插件”, 而且拥有较好的浏览器兼容性,有着丰富的功能以及可以自定义样式,足以满足大部分业务的开发。

这里写图片描述

第一步先导入css及js文件

<link rel="stylesheet" type="text/css" href="zTree/css/zTreeStyle/zTreeStyle.css">
<script type="text/javascript" src="zTree/js/jquery.ztree.all.min.js"></script>

第二步在html页面创建ztree Div

<div>
    <ul id="regionZTree" class="ztree"></ul>
</div>

第三步初始化ztree

var setting = {
        view: {
            dblClickExpand: false,//双击节点时,是否自动展开父节点的标识
            showLine: true,//是否显示节点之间的连线
            fontCss:{'color':'black','font-weight':'bold'},//字体样式函数
            selectedMulti: true //设置是否允许同时选中多个节点
        },
        check:{
            //chkboxType: { "Y": "ps", "N": "ps" },
            chkboxType: { "Y": "", "N": "" },
            chkStyle: "checkbox",//复选框类型
            enable: true //每个节点上是否显示 CheckBox
        },
        edit:{
            enable: true,
            editNameSelectAll: true,
            showRemoveBtn : true,
            showRenameBtn : true,
            removeTitle : "remove",
            renameTitle : "rename"
        },
        data: {
            simpleData: {//简单数据模式
                enable:true,
                idKey: "id",
                pIdKey: "IPARENTID",
                rootPId: null
            }
        },
        callback: {
            beforeExpand:zTreeBeforeExpand, // 用于捕获父节点展开之前的事件回调函数,并且根据返回值确定是否允许展开操作
        }
    };
zTreeObj = $.fn.zTree.init($("#regionZTree"), setting, dominZTree);

下面是ztree操作的效果图

这里写图片描述

下面是ztree增删改以及选中的代码

/**
 * 添加节点
 * @param obj
 */
function addZTreeNode(obj) {
    var treeObj = $.fn.zTree.getZTreeObj("regionZTree");
    var parentZNode = treeObj.getSelectedNodes(); //获取父节点
    var newNode = obj;
    newNode.nodeFlg = 1;  // 可以自定义节点标识
    newNode = treeObj.addNodes(parentZNode[0], newNode,true);
}
/**
 * 修改子节点
 * @param obj
 */
function editZTreeNode(obj) {
    var zTree = $.fn.zTree.getZTreeObj("regionZTree");
    var nodes = zTree.getSelectedNodes();
    for(var i = 0;i<nodes.length;i++)
    {
        nodes[i].name = obj;
        zTree.updateNode(nodes[i]);
    }
}

/**
 *  删除子节点 --选中节点
 * @param obj
 */
function removeZTreeNodeBySelect() {
    var zTree = $.fn.zTree.getZTreeObj("regionZTree");
    var nodes = zTree.getSelectedNodes(); //获取选中节点
    for (var i=0;i<nodes.length; i++) {
        zTree.removeNode(nodes[i]);
    }
}

/**
 *  删除子节点 --勾选节点
 * @param obj
 */
function removeZTreeNodeByChecked() {
    var zTree = $.fn.zTree.getZTreeObj("regionZTree");
    var nodes =  zTree.getCheckedNodes(true); //获取勾选节点
    for (var i=0;i<nodes.length; i++) {
        zTree.removeNode(nodes[i]);
    }
}

/**
 *  根据节点id 批量删除子节点
 * @param obj
 */
function removeZTreeNodebPi(obj) {
    var idnodes = obj.split(",");
    var zTree = $.fn.zTree.getZTreeObj("regionZTree");
    var nodes = zTree.getSelectedNodes();
    for (var i=0;i<nodes.length; i++) {
        var nodes = zTree.getNodeByParam("id", nodes[i]);
        zTree.removeNode(nodes);
    }
}
/**
 * 选择节点
 * @param obj
 */
function selectzTreeNode(obj) {
    var zTree = $.fn.zTree.getZTreeObj("regionZTree");
    var node = zTree.getNodeByParam("id",obj);
    if(node!=null) {
        zTree.selectNode(node, true);//指定选中ID的节点
    }
}
  • 24
    点赞
  • 154
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
ZTree是一个基于jQuery的树形结构插件,可以用于显示树形菜单、目录结构等。在Vue项目中使用ZTree,需要先安装ZTree插件,然后在Vue组件中引入和使用。 步骤如下: 1. 在Vue项目中安装ZTree插件: ``` npm install jquery ztree --save ``` 2. 在Vue组件中引入jQuery和ZTree插件: ```javascript import $ from 'jquery' import 'ztree/js/jquery.ztree.all.min.js' import 'ztree/css/metroStyle/metroStyle.css' ``` 其中,`jquery.ztree.all.min.js`是ZTree的核心文件,`metroStyle.css`是一款ZTree的皮肤。 3. 在Vue组件中定义一个div元素,用于显示ZTree: ```html <template> <div id="tree"></div> </template> ``` 4. 在Vue组件的`mounted`钩子函数中,初始化ZTree,并将数据渲染到树形菜单中: ```javascript mounted() { // 初始化ZTree let setting = { view: { selectedMulti: false }, data: { simpleData: { enable: true } }, callback: { onClick: this.onClick } } let zNodes = [ { id:1, pId:0, name:"父节点 1", open:true}, { id:11, pId:1, name:"子节点 1-1"}, { id:12, pId:1, name:"子节点 1-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"} ] $.fn.zTree.init($("#tree"), setting, zNodes) }, methods: { // 点击节点事件 onClick(event, treeId, treeNode) { console.log(treeNode.name) } } ``` 其中,`zNodes`变量是一个数组,用于存储树形菜单的数据。`setting`变量是一个对象,用于配置ZTree的属性,例如是否允许多选、数据格式等。`$.fn.zTree.init`方法用于初始化ZTree,其中`$("#tree")`表示树形菜单的容器元素,`setting`表示ZTree的配置,`zNodes`表示树形菜单的数据。 5. 最终效果如下图所示: <img src="https://i.loli.net/2022/01/08/aJZ9zVX8q3WOhlY.png" alt="ztree-demo.png" style="zoom:50%;" />
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值