https://www.yisu.com/zixun/254096.html
layui的table在使用了toolbar工具栏后,刷新表格,工具栏的按钮会失效,原因是表格重新加载后,没有绑定工具栏按钮的触发事件,因此只需要在表格初始化完毕之后和刷新表格完毕后重新绑定一下所有按钮的绑定事件就可以了,这里把事件处理集合到了一个方法中,请参照bindTableToolbarFunction,具体代码如下:
1. Html页面
<section class="layui-fluid"> <aside class="layui-card" id="queryDiv"> <div class="layui-elem-quote"> <form class="layui-form"> <div class="layui-inline"> <label>号码:</label> <div class="layui-input-inline"> <input class="layui-input" id="phone" type="text"> </div> <a class="layui-btn search_btn" data-type="reload">搜索</a> </div> </form> </div> </aside> <article class="my-table"> <table id="tableList" lay-filter="tableList"></table> </article> <script type="text/html" id="toolbarDemo"> <div class="layui-btn-container" id="tableNav"> <button type="button" class="layui-btn layui-btn-sm" id="add">新增用户</button> <button type="button" class="layui-btn layui-btn-sm layui-btn-danger" id="del">删除用户</button> </div> </script> </section >
2. 对应的js
layui.use(['form','layer','table'],function(){ var form = layui.form, layer = parent.layer === undefined ? layui.layer : top.layer, table = layui.table; // 加载提示 var loadingMsg = layer.msg('数据请求中', {icon: 16,scrollbar: false,time: 0}); // 初始化表格及数据 var tableIns = table.render({ elem: '#tableList', url : 'sysUser/list', where :{ phone : $("#phone").val() }, cellMinWidth : 95, toolbar: "#toolbarDemo", //让工具栏左侧显示默认的内置模板 defaultToolbar: ['filter'], // 工具栏右侧的图标按钮['filter', 'print', 'exports'] even: true, // 开启斑马线效果 page : true, // height : "full-125",//放置在页面底部 limits : myLimits, limit : myLimit, id : "tableListTable", cols : [[ {field: 'userId', title: 'ID', width:100, align:"center"}, {field: 'userName', title: '用户名', minWidth:150, align:"center"}, {field: 'state', title: '状态', width:80, align:"center", templet: stateFormat}, {field: 'sex', title: '性别', width:80, align:"center", templet: sexFormat}, {field: 'remark', title: '备注', align:"center"} ]], done: function(res, curr, count){ // 关闭提示层 layer.close(loadingMsg); // 绑定表格工具栏按钮的触发事件 bindTableToolbarFunction(); } }); // ==================== 定义常规函数 ==================== // 刷新表格数据 function reloadTable(){ // 加载提示 loadingMsg = layer.msg('数据请求中', {icon: 16,scrollbar: false,time: 0}); // 重新加载数据 table.reload("tableListTable",{ page: { curr: 1 //重新从第 1 页开始 }, where: { phone : $("#phone").val() }, done: function(res, curr, count){ layer.close(loadingMsg); bindTableToolbarFunction() } }); } // 搜索【此功能需要后台配合,所以暂时没有动态效果演示】 $(".search_btn").on("click",function(){ // 刷新表格 reloadTable(); }); // 格式化显示用户状态信息 function stateFormat(d){ var str; if (d.state == 0) { str = '<span class="fontColor_red">禁用</span>'; } else if(d.state == 1) { str = '<span class="fontColor_green">正常</span>'; } else { str = '<span class="fontColor_darkOrange">锁定</span>'; } return str; } // 格式化显示sex信息 function sexFormat(d){ var str; if (d.sex == 0) { str = '女'; } else if(d.sex == 1) { str = '男'; } else { str = '<span class="fontColor_red">未知</span>'; } return str; } // ==================== 定义事件处理 ==================== // 绑定事件集合处理(表格加载完毕和表格刷新的时候调用) function bindTableToolbarFunction() { // 绑定新增用户事件 $("#add").on("click", function() { layer.alert("新增用户被调用了", {icon: 6}); }); // 绑定删除用户事件 $("#del").on("click", function() { layer.alert("删除用户被调用了", {icon: 6}); }); } })
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2018-01-29 使用IntelliJ IDEA 配置Maven(转)
2018-01-29 ORA-04068 / ORA-04065 / ORA-06508 详细说明