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 相关文章推荐
javascript中的previousSibling和nextSibling的正确用法
Sep 16 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
Dec 12 Javascript
鼠标经过出现气泡框的简单实例
Mar 17 Javascript
详解JS获取HTML DOM元素的8种方法
Jun 17 Javascript
js循环map 获取所有的key和value的实现代码(json)
May 09 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
Jun 20 Javascript
layer弹出的iframe层在执行完毕后关闭当前弹出层的方法
Aug 17 Javascript
javascript匿名函数中的'return function()'作用
Oct 15 Javascript
详解JS实现简单的时分秒倒计时代码
Apr 25 Javascript
vue下的@change事件的实现
Oct 25 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
Aug 08 Javascript
用JS实现飞机大战小游戏
Jun 09 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 遍历数据表数据并列表横向排列的代码
2009/09/05 PHP
phpmailer在服务器上不能正常发送邮件的解决办法
2014/07/08 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
JavaScript中清空数组的三种方法分享
2011/04/07 Javascript
js弹出div并显示遮罩层
2014/02/12 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
理解javascript回调函数
2014/12/28 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
jQuery制作input提示内容(兼容IE8以上)
2017/07/05 jQuery
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
JavaScript中 ES6变量的结构赋值
2018/07/10 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
2019/02/21 Javascript
vue.js中ref及$refs的使用方法解析
2019/10/08 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
python二分法实现实例
2013/11/21 Python
python实现统计代码行数的方法
2015/05/22 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
2016/06/14 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
瑞士香水购物网站:Parfumcity.ch
2017/01/14 全球购物
医学生求职自荐信
2013/10/25 职场文书
项目计划书范文
2014/01/09 职场文书
清洁员岗位职责
2015/02/15 职场文书
物业前台接待岗位职责
2015/04/03 职场文书
签字仪式主持词
2015/07/03 职场文书
装修公司管理制度
2015/08/05 职场文书
vue组件的路由高亮问题解决方法
2021/05/11 Vue.js
MySQL8.0无法启动3534的解决方法
2021/06/03 MySQL