ztree--ztree树形结构显示数据+复选框+回显勾选选中值

**

1.ztree后台接口数据格式

var zNodes = [
{"id":1, "pId":0, "name":"test1"},
{"id":11, "pId":1, "name":"test11"},
{"id":12, "pId":1, "name":"test12"},
{"id":111, "pId":11, "name":"test111"}   ];

**

2.ztree前端页面使用

 $(function () {
                var setting = {
                    view: {
                        showIcon: true,//设置 zTree 是否显示节点的图标。
                        selectedMulti : true,     //可以多选
                        showLine : false,
                        expandSpeed : 'fast',
                        dblClickExpand : false
                    },
                    data: {
                        simpleData: {
                            enable: true
                        }
                    },
                    check : {
                        enable : true,
                        chkStyle : "checkbox",    //复选框
                    },
                    callback: {
                        // beforeExpand: beforeExpand,
                        // onExpand: onExpand,
                        onClick: zTreeOnClick,
                        onCheck:zTreeonCheck,
                        onAsyncSuccess : zTreeOnAsyncSuccessPublic
                    }
                }

```javascript
function zTreeOnClick(event, treeId, treeNode) {
          // 每次点击节点后, 弹出该节点的 tId、name 的信息
         alert(treeNode.tId + ", " + treeNode.name);
    };
function zTreeonCheck() {
          var treeObj=$.fn.zTree.getZTreeObj("planTree"),
          nodes=treeObj.getChangeCheckedNodes();
          var arr=[];
          for(var i=0;i<nodes.length;i++){
               arr.push(nodes[i].id)
                // alert(nodes[i].id); //获取选中节点的值
          }
             $("#nodeid").val(arr);
         }
      })

**注意:check:表示使树形结构使用复选框在这里插入图片描述
callback:表示执行后的回调函数,onClick表示点击时获取该节点的id和name的值,onCheck表示点击复选框的时候获取该节点的id和name的值,onAsyncSuccess表示请求成功后的回调函数,但是,需要注意的是,如果你使用了ajax,那么请求都会先让ajax执行,这样的话就不会执行onAsyncSuccess了,所以有两种解决办法,一是:把onAsyncSuccess中的方法直接放到ajax中去执行;二是:不用ajax,直接用onAsyncSuccess,把ajax中的方法放到onAsyncSuccess中执行,前提是ajax中的方法是针对ztree树的,要不然没有用
在这里插入图片描述
nodeid:表示input隐藏域的id,此隐藏域的作用是存放选中的节点的id(复选框对应的id)
在这里插入图片描述
planTree:表示存放树形结构的div,不管用什么标签,一定要加class=“ztree”,要不然树形结构会出现显示不出来的情况。
getZTreeObj():此方法是ztree自带的方法,表示获取初始化的树对象。
getChangeCheckedNodes():此方法是ztree自带的方法,表示获取复选框选中节点。

<div class="layui-input-block">
	<div class="demo-tree-more">
		<ul id="planTree" class="ztree"></ul>
	</div>
</div>

在这里插入图片描述
**

3.回显勾选选中(在ajax中实现)

  var zNodes=[];
   $.ajax({
            type:'get',
             url:'getMenu',
             dataType:'json',
             success:function (data) {
               // console.log(data)
             zNodes=data;
             $.fn.zTree.init($("#planTree"), setting, zNodes);
             var ztreeIds = $("#nodeid").val();
             if(ztreeIds.trim()!=""){
                     var ztree = $.fn.zTree.getZTreeObj("planTree");
                     var ztreeId = ztreeIds.split(",");
                     for(var j=0;j<ztreeId.length;j++){
                          var node = ztree.getNodeByParam("id",ztreeId[j]);
                          var parent = node.getParentNode();
                          if(parent==null||!parent.open){
                                    ztree.expandNode(parent,true,true);
                                }
                                ztree.checkNode(node,true,true);
                            }
                        }
                    }
                })

**注意:
getNodesByParam():此方法是ztree自带的方法,表示通过id获取节点信息,这里的id是(id,parentid,name)中的id,不是父id。
getParentNode():此方法是ztree自带的方法,表示获取父级id,这个时候parent有可能是null,所以要加为null判断。
expandNode():此方法是ztree自带的方法,表示展开是否展开父级id。
checjNode():此方法是ztree自带的方法,表示回显选中的复选框。
在这里插入图片描述
**

4.页面中需要引入ztree的css和js

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

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ztree-input是一个通过使用zTree插件实现的下拉菜单功能。根据引用[1]提供的代码,ztree-input的实现方式是通过在页面上添加一个input框,并绑定一个点击事件来显示下拉菜单。当点击input框时,会触发事件函数"showTree()",该函数会将zTree树状图显示在input框下方。同时,通过点击input框右侧的倒三角图标,可以收起或展开下拉菜单。在下拉菜单选择相应的选项后,选中会存储在一个隐藏的input框,供后续的处理使用。这样实现了一个具有下拉功能的ztree-input。 从引用可以看到,实现ztree-input还需要引入ztree所需的js和css文件。 最后,引用提供了一个可用的示例来实现点击input框出现下拉菜单的效果。这个示例经过亲测可用。 总结来说,ztree-input是通过使用zTree插件和一些相关的代码实现的一个具有下拉功能的输入框。用户可以点击输入框来显示一个下拉菜单,并在菜单选择相应的选项。选中会存储在隐藏的input框,方便后续处理。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [ztree实现下拉功能 input](https://blog.csdn.net/weixin_42599079/article/details/88897426)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [ztree树形菜单实现点击input框下拉功能 (内附有demo)](https://blog.csdn.net/z_zhy/article/details/87938669)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [zTree 实现点击input框出现下拉菜单(亲测可用)上一版的传错了](https://download.csdn.net/download/z_zhy/10997776)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值