layui.tree組件的使用以及搜索節(jié)點功能的實現(xiàn)
由于項目樹形節(jié)點比較多需要增加節(jié)點搜索功能,所以研究了一下加上社區(qū)伙伴的支持,目前功能可以簡單實現(xiàn)但細(xì)節(jié)還需要修改,添加上了組件的基本使用方法和屬性,現(xiàn)在分享出來~
HTML:
<div class="layui-btn-container"> <button class="layui-btn layui-btn-sm" type="button" lay-demo="getChecked">獲取選中節(jié)點數(shù)據(jù)</button> <button class="layui-btn layui-btn-sm" type="button" lay-demo="setChecked">勾選指定節(jié)點</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 //模擬數(shù)據(jù) ,data1 = [{ title: '江西' ,id: 1 ,children: [{ title: '南昌' ,id: 1000 ,children: [{ title: '青山湖區(qū)' ,id: 10001 },{ title: '高新區(qū)' ,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: '四川(可跳轉(zhuǎn))' ,id: 4 ,href: 'https://www.layui.com/' ,children: [{ title: '成都' ,id: 3000 ,checked: true //默認(rèn)選中 },{ title: '雅安' ,id: 3001 }] }]; //常規(guī)用法 tree.render({ elem: '#test1' //默認(rèn)是點擊節(jié)點可進(jìn)行收縮 ,data: data1 ,id: 'demoId1' ,showCheckbox: true //是否顯示復(fù)選框 ,isJump: true //是否允許點擊節(jié)點時彈出新窗口跳轉(zhuǎn) ,showLine: true //是否開啟連接線 ,edit: ['add', 'update', 'del'] //開啟操作節(jié)點的圖標(biāo) ,click: function(obj){ var data = obj.data; //獲取當(dāng)前點擊的節(jié)點數(shù)據(jù) layer.msg('狀態(tài):'+ obj.state + '<br>節(jié)點數(shù)據(jù):' + JSON.stringify(data)); } }); //按鈕事件 util.event('lay-demo', { getChecked: function(othis){ var checkedData = tree.getChecked('demoId1'); //獲取選中節(jié)點的數(shù)據(jù) layer.alert(JSON.stringify(checkedData), {shade:0}); console.log(checkedData); } ,setChecked: function(){ tree.setChecked('demoId1', [3, 4]); //勾選指定節(jié)點 } ,reload: function(){ //重載實例 tree.reload('demoId1', {}); } }); //搜索節(jié)點值 $('#btn_query').click(function () { var name = $("#tree_name").val(); //搜索值 var elem = $("#test1").find('.layui-tree-txt').css('color', ''); //搜索文本與設(shè)置默認(rèn)顏色 if (!name) { return; //無搜索值返回 } elem.filter(':contains(' + name + ')').css('color', '#FFB800'); //搜索文本并設(shè)置標(biāo)志顏色 elem.parents('.layui-tree-pack').prev().find('.layui-tree-iconClick').click(); //展開選項 //console.log(elem); }) });
效果如圖:
搜索功能還有待完善,希望做過類似功能的伙伴多多溝通和分享~
以上這篇layui.tree組件的使用以及搜索節(jié)點功能的實現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
uni-app小程序中父組件和子組件傳值的實現(xiàn)實例
uniapp父子組件引用傳值,和vue的一樣,沒有小程序那樣的麻煩,下面這篇文章主要給大家介紹了關(guān)于uni-app小程序中父組件和子組件傳值的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08JS中JSON對象和String之間的互轉(zhuǎn)及處理技巧
JSON:JavaScript 對象表示法(JavaScript Object Notation),其實JSON就是一個JavaScript的對象(Object)而已。接下來通過本文給大家介紹JS中JSON對象和String之間的互轉(zhuǎn)及處理技巧,需要的朋友一起學(xué)習(xí)吧2016-04-04boostrapTable的refresh和refreshOptions區(qū)別淺析
在使用bootstrapTable時,刷新數(shù)據(jù)有兩個方法refresh、refreshOptions,在其用法上有點區(qū)別,接下來通過本文給大家分享boostrapTable的refresh和refreshOptions的區(qū)別,需要的朋友可以參考下2017-01-01Jquery作者John Resig自己封裝的javascript 常用函數(shù)
Jquery作者John Resig自己封裝的常用函數(shù), 大家可以參考下。2009-11-11