layui.tree组件的使用以及搜索节点功能的实现


Posted in Javascript onSeptember 26, 2019

由于项目树形节点比较多需要增加节点搜索功能,所以研究了一下加上社区伙伴的支持,目前功能可以简单实现但细节还需要修改,添加上了组件的基本使用方法和属性,现在分享出来~

HTML:

<div class="layui-btn-container">
  <button class="layui-btn layui-btn-sm" type="button" lay-demo="getChecked">获取选中节点数据</button>
  <button class="layui-btn layui-btn-sm" type="button" lay-demo="setChecked">勾选指定节点</button>
  <button class="layui-btn layui-btn-sm" type="button" lay-demo="reload">重载实例</button>
</div>
<div class="demoTable">
  <div class="layui-inline">
    <input type="text" class="layui-input" id="tree_name" autocomplete="off" />
  </div>
  <button class="layui-btn" id="btn_query">搜索</button>
</div>
<div id="test1" class="demo-tree demo-tree-box"></div>

JavaScript:

layui.use(['tree', 'util'], function(){
    var $ = layui.$;
    var tree = layui.tree
        ,layer = layui.layer
        ,util = layui.util
    //模拟数据
        ,data1 = [{
          title: '江西'
          ,id: 1
          ,children: [{
            title: '南昌'
            ,id: 1000
            ,children: [{
              title: '青山湖区'
              ,id: 10001
            },{
              title: '高新区'
              ,id: 10002
            }]
          },{
            title: '九江'
            ,id: 1001
          },{
            title: '赣州'
            ,id: 1002
          }]
        },{
          title: '广西'
          ,id: 2
          ,children: [{
            title: '南宁'
            ,id: 2000
          },{
            title: '桂林'
            ,id: 2001
          }]
        },{
          title: '陕西'
          ,id: 3
          ,children: [{
            title: '西安'
            ,id: 3000
          },{
            title: '延安'
            ,id: 3001
          }]
        },{
          title: '四川(可跳转)'
          ,id: 4
          ,href: 'https://www.layui.com/'
          ,children: [{
            title: '成都'
            ,id: 3000
            ,checked: true //默认选中
          },{
            title: '雅安'
            ,id: 3001
          }]
        }];
 
    //常规用法
    tree.render({
      elem: '#test1' //默认是点击节点可进行收缩
      ,data: data1
      ,id: 'demoId1'
      ,showCheckbox: true //是否显示复选框
      ,isJump: true //是否允许点击节点时弹出新窗口跳转
      ,showLine: true //是否开启连接线
      ,edit: ['add', 'update', 'del'] //开启操作节点的图标
      ,click: function(obj){
        var data = obj.data; //获取当前点击的节点数据
        layer.msg('状态:'+ obj.state + '<br>节点数据:' + JSON.stringify(data));
      }
    });
 
    //按钮事件
    util.event('lay-demo', {
      getChecked: function(othis){
        var checkedData = tree.getChecked('demoId1'); //获取选中节点的数据
 
        layer.alert(JSON.stringify(checkedData), {shade:0});
        console.log(checkedData);
      }
      ,setChecked: function(){
        tree.setChecked('demoId1', [3, 4]); //勾选指定节点
      }
      ,reload: function(){
        //重载实例
        tree.reload('demoId1', {});
      }
    });
 
    //搜索节点值
    $('#btn_query').click(function () {
      var name = $("#tree_name").val(); //搜索值
      var elem = $("#test1").find('.layui-tree-txt').css('color', ''); //搜索文本与设置默认颜色
      if (!name) {
        return; //无搜索值返回
      }
      elem.filter(':contains(' + name + ')').css('color', '#FFB800'); //搜索文本并设置标志颜色
      elem.parents('.layui-tree-pack').prev().find('.layui-tree-iconClick').click(); //展开选项
      //console.log(elem);
    })
 
  });

效果如图:

layui.tree组件的使用以及搜索节点功能的实现

搜索功能还有待完善,希望做过类似功能的伙伴多多沟通和分享~

以上这篇layui.tree组件的使用以及搜索节点功能的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery对象和DOM对象的相互转化实现代码
Mar 02 Javascript
基于jQuery的Tab选项框效果代码(插件)
Mar 01 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
Jun 16 Javascript
JS实现探测网站链接的方法【测试可用】
Nov 08 Javascript
Node 自动化部署的方法
Oct 17 Javascript
Bootstrap Table 搜索框和查询功能
Nov 30 Javascript
JS中的BOM应用
Feb 02 Javascript
Vue中使用vux配置代码详解
Sep 16 Javascript
JS精确判断数据类型代码实例
Dec 18 Javascript
JS实现手写 forEach算法示例
Apr 29 Javascript
mapboxgl区划标签避让不遮盖实现的代码详解
Jul 01 Javascript
JavaScript动态生成表格的示例
Nov 02 Javascript
微信小程序点击列表跳转到对应详情页过程解析
Sep 26 #Javascript
vue+element tabs选项卡分页效果
Jun 29 #Javascript
layui实现根据table数据判断按钮显示情况的方法
Sep 26 #Javascript
vue+element表格导出为Excel文件
Sep 26 #Javascript
利用layer实现表单完美验证的方法
Sep 26 #Javascript
vue点击当前路由高亮小案例
Sep 26 #Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
Sep 26 #Javascript
You might like
php判断当前操作系统类型
2015/10/28 PHP
JavaScript实现删除电脑的关机键
2016/07/26 PHP
php 数组元素快速去重
2017/05/05 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
PHP实现统计代码行数小工具
2019/09/19 PHP
javascript实现面向对象类的功能书写技巧
2010/03/07 Javascript
JavaScript 轻松搞定快捷留言功能 只需一行代码
2010/04/01 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
js中for in的用法示例解析
2013/12/25 Javascript
Javascript 按位与赋值运算符 (&amp;=)使用介绍
2014/02/04 Javascript
javascript查询字符串参数的方法
2015/01/28 Javascript
详解JavaScript对象序列化
2016/01/19 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
利用Bootstrap实现表格复选框checkbox全选
2016/12/21 Javascript
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
vue.js删除列表中的一行
2018/06/30 Javascript
vuex实现的简单购物车功能示例
2019/02/13 Javascript
基于element-ui对话框el-dialog初始化的校验问题解决
2020/09/11 Javascript
[01:23:24]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant BO3 第三场 2月7日
2021/03/11 DOTA
Python实现字典依据value排序
2016/02/24 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
Django ORM框架的定时任务如何使用详解
2017/10/19 Python
python实现多线程端口扫描
2019/08/31 Python
Python 无限级分类树状结构生成算法的实现
2021/01/21 Python
CPB肌肤之钥美国官网:Clé de Peau Beauté
2017/09/05 全球购物
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
网络宣传方案
2014/03/15 职场文书
车间核算员岗位职责
2014/07/01 职场文书
我的中国梦演讲稿300字
2014/08/19 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
劳模事迹材料范文
2014/12/24 职场文书
创业开店,这样方式更合理
2019/08/26 职场文书
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android