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 相关文章推荐
js自定义方法通过隐藏iframe实现文件下载
Feb 21 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
May 15 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
Feb 05 Javascript
js上传图片及预览功能实例分析
Apr 24 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
Jun 07 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
Aug 18 Javascript
原生js中ajax访问的实例详解
Sep 19 Javascript
two.js之实现动画效果示例
Nov 06 Javascript
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
Aug 20 Javascript
mongodb初始化并使用node.js实现mongodb操作封装方法
Apr 02 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
Aug 23 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
微信小程序点击列表跳转到对应详情页过程解析
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漏洞小结
2012/02/05 PHP
mac下Apache + MySql + PHP搭建网站开发环境
2014/06/02 PHP
php+memcache实现的网站在线人数统计代码
2014/07/04 PHP
php简单解析mysqli查询结果的方法(2种方法)
2016/06/29 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
jQuery中:hidden选择器用法实例
2014/12/30 Javascript
JavaScript检测并限制复选框选中个数的方法
2015/08/12 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
详解jQuery移动页面开发中的ui-grid网格布局使用
2015/12/03 Javascript
Angular2开发——组件规划篇
2017/03/28 Javascript
深入理解vue.js中$watch的oldvalue与newValue
2017/08/07 Javascript
Vue 实时监听窗口变化 windowresize的两种方法
2018/11/06 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
微信小程序中如何计算距离某个节日还有多少天
2019/07/15 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
JS异步宏队列与微队列原理区别详解
2020/07/02 Javascript
vue 弹出遮罩层样式实例
2020/07/22 Javascript
Python运行的17个时新手常见错误小结
2012/08/07 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
2015/04/08 Python
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
浅析AST抽象语法树及Python代码实现
2016/06/06 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
python实现聚类算法原理
2018/02/12 Python
centos 安装Python3 及对应的pip教程详解
2019/06/28 Python
8种用Python实现线性回归的方法对比详解
2019/07/10 Python
在keras下实现多个模型的融合方式
2020/05/23 Python
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
竞聘上岗演讲稿范文
2014/01/10 职场文书
《夹竹桃》教学反思
2014/04/20 职场文书
药店促销活动策划方案
2014/08/24 职场文书
会议欢迎词范文
2015/01/27 职场文书
《走遍天下书为侣》教学反思
2016/02/22 职场文书