Layui表格单元格嵌入多个小图标按钮的方法
在Layui表格单元格嵌入多个小图标按钮时,需用layui-btn和layui-btn-xs包裹图标以防止撑行高,通过lay-event和table on( tool )绑定事件避免点击失效。图标超过三个宜改用layer tips弹出菜单,表头添加配置图标需在title中写HTML并用事件委托确保重载后不丢失。
在Layui表格中嵌入图标按钮,看似简单,但实际编写templet时,各种问题就会浮现出来。本文先总结几个常见场景:图标撑高行高、点击无响应、数量过多时布局混乱。接下来逐一分析解决方法,同时将表头添加配置图标、事件委托等相关问题一并讲解清楚。
Layui表格templet中如何编写多个迷你图标按钮避免撑高行高
直接使用 显然不可行——图标缺乏容器约束,会默认继承父元素的 line-height,导致整行高度被撑开。关键在于借助 layui-btn layui-btn-xs 将图标包裹起来,否则高度无法控制。

layui-btn-xs是控制按钮高度的关键样式,可将按钮压缩至20px高、内边距最小化,但必须与layui-btn组合使用,单独添加layui-btn-xs无法生效。- 推荐采用以下写法:
- Unicode 图标建议使用实体字符(例如
),避免直接粘贴图标或使用十六进制ሴ,因为Layui模板对后者的兼容性不够稳定。 - 多个按钮横向排列时,每个按钮后添加
layui-mr5或内联样式style="margin-right: 5px;",防止点击区域互相重叠。
Layui表格按钮点击无响应?检查lay-event与事件监听是否匹配
图标按钮本身不具备事件绑定,需要依赖外层按钮触发,而事件只能通过 lay-event 属性被 table.on('tool(filter)') 捕获。使用 onclick="xxx()" 虽然看似可行,但表格重载后事件绑定会失效。
- templet 中的按钮必须包含
lay-event属性,例如 - 监听代码中的 filter 名称必须与表格
lay-filter属性值完全一致,例如table.on('tool(userTable)', ...)对应- 避免在
tool回调中直接操作 DOM,或在调用table.reload()后立即读取obj.data,因为渲染可能尚未完成。- 禁用状态需要通过 templet 进行判断:
return d.status === 0 ? '' : '';Layui表格图标按钮过多布局混乱?推荐使用layer.tips下拉菜单替代
当超过3个图标按钮并排排列时,单元格必然出现换行或高度溢出。Layui 表格单元格默认
white-space: nowrap,若强行添加display: block会撑高整行,破坏对齐效果。- 正确的做法是仅保留一个「更多」按钮:
- 在
tool监听中通过layer.tips(html, this, { tips: [2, '#fff'], area: ['120px', 'auto'] })弹出菜单。 - 弹出内容可设计为按钮组:
'' - 需要注意:弹窗关闭需要手动控制,
layer.tips默认不会自动关闭,可绑定 document click 事件实现关闭,但需排除当前按钮的点击触发。
Layui表头右侧添加配置图标,title字段写HTML需防止转义失效
若想在某一列标题末尾添加⚙️图标,不能依赖 toolbar,需要将
title字段设置为 HTML 字符串,但 Layui 会对 title 自动进行转义,直接写入标签会被当作普通文本渲染。- 安全写法示例:
title: '姓名' - 图标点击事件必须采用事件委托机制:
$(document).on('click', 'th .layui-icon', function() { var field = $(this).closest('[data-field]').data('field'); }) - 为避免重复绑定,表格重载前需执行
$(document).off('click', 'th .layui-icon'),或添加命名空间如.colSetting。 - 不要在
done回调中使用$('th').append()动态添加图标——分页或搜索后图标会丢失,且无法绑定事件。
实际开发中最容易被忽略的一点是:templet 函数必须保持轻量同步,不能发起请求、不能调用未定义函数、不能操作全局 DOM;图标按钮的交互路径应统一收敛到
来源:https://www.php.cn/faq/2806243.htmltable.on('tool()')中,而非分散在 onclick 或 done 回调里——否则表格每重绘一次,交互逻辑就会中断一次。上一篇: 如何解决CSS Grid布局图片比例失调
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
更多
同类文章
CSS背景图片位置平滑滑动全景动画实现方法
实现无缝全景动画的方法:背景图宽度至少容器两倍,背景尺寸设为宽自动高,留出移动空间。背景位置从0%到100%线性滑动,循环动画。悬停时用动画播放状态暂停,:hover恢复,避免使用覆盖导致滑动不连贯即可。
时间:2026-07-22 22:32
Layui表格单元格嵌入多个小图标按钮的方法
在Layui表格单元格嵌入多个小图标按钮时,需用layui-btn和layui-btn-xs包裹图标以防止撑行高,通过lay-event和table on( tool )绑定事件避免点击失效。图标超过三个宜改用layer tips弹出菜单,表头添加配置图标需在title中写HTML并用事件委托确保重载后不丢失。
时间:2026-07-22 22:31
如何解决CSS Grid布局图片比例失调
object-fit:cover生效需容器有明确尺寸。griditem设aspect-ratio与width:100%,或用padding-bottom百分比。图片设width:100%、height:100%、display:block。griditem加overflow:hidden防止裁剪溢出。响应式断点下容器尺寸变化会改变裁剪范围,需注意调整。
时间:2026-07-22 22:31
动态模板渲染层级混杂的HTML代码质量分层治理
动态模板渲染中,模板继承链的block命名冲突、SSR输出ID重复、非首屏内容片段加载卡顿及HTML结构混杂等问题常引发链式故障。可采用命名规范、前缀注入、纯结构返回及手动事件绑定等分层治理策略解决。
时间:2026-07-22 22:31
Bootstrap Modal内文字自动缩放字号实现方法
使用CSSclamp()函数可实现Bootstrap5模态框内文字字号根据内容长短自动缩放,最小0 75rem、最大1 5rem,中间值按视口宽度2 5%线性插值。需将函数应用于文本容器而非模态框根元素,并确保父容器允许换行。兼容Chrome76+、Firefox75+、Safari13 1+。
时间:2026-07-22 22:31更多
热门专题
- 热门数据榜
更多
相关攻略
CSS背景图片位置平滑滑动全景动画实现方法
2026-07-22 22:32
如何解决CSS Grid布局图片比例失调
2026-07-22 22:31
动态模板渲染层级混杂的HTML代码质量分层治理
2026-07-22 22:31
Bootstrap Modal内文字自动缩放字号实现方法
2026-07-22 22:31
JavaScript数值精度误差统计与规避建议
2026-07-22 22:31
前端自动化流水线中HTML模板的组件集成方案
2026-07-22 22:19
大屏数据可视化系统HTML语义化应用实践
2026-07-22 22:19
async关键字如何改变函数执行行为
2026-07-22 22:19
更多
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程
航海王燃烧意志凯多体系优势全解析 发布于 2026-07-22
航海王燃烧意志布鲁克最强阵容搭配攻略 发布于 2026-07-22
航海王燃烧意志艾斯灼烧流玩法攻略 发布于 2026-07-22
马斯克称Grok2026年制作AI电影《奥德赛》致敬荷马 发布于 2026-07-22
年好玩的斯诺克游戏推荐台球手游下载合集 发布于 2026-07-22
年度现代空战手游高分佳作精选榜单推荐 发布于 2026-07-22
饥困荒野手游春季生存详细攻略与技巧大全 发布于 2026-07-22
我要当国王完美结局大全及推荐 发布于 2026-07-22
最新Win11RP预览版文件资源管理器新增Copilot智能按钮 发布于 2026-07-22
Win11 26H1新小工具面板彻底移除新闻推送 发布于 2026-07-22
Win11实验频道 Build 28120.2546 预览版发布 发布于 2026-07-22
微软确认Win10可用至2027年 68%用户拒绝升级Win11 发布于 2026-07-21
OPPO耳机恢复出厂设置后无法连接手机 发布于 2026-07-22
西宁深蓝汽车购买推荐:靠谱经销商汇总 发布于 2026-07-22
青岛红旗HQ9新能源4S店哪家信誉好服务口碑佳 发布于 2026-07-22
东莞腾势Z9GT门店地址查询 发布于 2026-07-22 - 避免在

