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的弹出警告对话框美化插件(警告,确认和提示)
Jun 10 Javascript
js自执行函数的几种不同写法的比较
Aug 16 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
Mar 04 Javascript
js 鼠标移动显示图片的简单实例
Dec 25 Javascript
Jquery uploadify上传插件使用详解
Jan 13 Javascript
JavaScript实现翻页功能(附效果图)
Feb 16 Javascript
微信小程序登录态控制深入分析
Apr 12 Javascript
JavaScript基于扩展String实现替换字符串中index处字符的方法
Jun 13 Javascript
angular.js中解决跨域问题的三种方式
Jul 12 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
Jul 27 Javascript
详解EasyUi控件中的Datagrid
Aug 23 Javascript
nuxt 页面路由配置,主页轮播组件开发操作
Nov 05 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函数
2006/10/09 PHP
php中用foreach来操作数组的代码
2011/07/17 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
2017/02/03 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
IE与firefox下Dhtml的一些区别小结
2009/12/02 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
window.open()详解及浏览器兼容性问题示例探讨
2014/05/29 Javascript
jQuery固定元素插件scrolltofixed使用指南
2015/04/21 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
js数组去重的hash方法
2016/12/22 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
2017/03/17 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
layui 数据表格复选框实现单选功能的例子
2019/09/19 Javascript
javascript事件循环event loop的简单模型解释与应用分析
2020/03/14 Javascript
Mac OS X10.9安装的Python2.7升级Python3.3步骤详解
2013/12/04 Python
python脚本替换指定行实现步骤
2017/07/11 Python
Python实现的矩阵类实例
2017/08/22 Python
利用python将xml文件解析成html文件的实现方法
2017/12/22 Python
python3 flask实现文件上传功能
2020/03/20 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
python中pop()函数的语法与实例
2020/12/01 Python
在HTML5中使用MathML数学公式的简单讲解
2016/02/19 HTML / CSS
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
关于毕业的中学校园广播稿
2014/01/26 职场文书
市场调查策划方案
2014/06/10 职场文书
2014年社区妇联工作总结
2014/12/02 职场文书
收费员岗位职责
2015/02/14 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
小学运动会通讯稿
2015/07/18 职场文书
PL350与SW11的比较
2021/04/22 无线电
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis