Layui table如何设置单元格在被选中时显示边框高亮

酷萱大大_7485

酷萱大大_7485

2026-07-07

930人浏览

原创

必须用事件代理绑定表格容器的td点击事件,即$(tableElem).on('click', 'td', ...),并在render()的done回调中执行;高亮需用自定义class加!important,通过data-field区分列,编辑框聚焦样式需额外覆盖。

单元格点击高亮必须用事件代理绑定 td,不能直接绑 onclick

直接给 td 元素写 onclick 或用 layui.$('td').on('click', ...) 绑定,会在分页、排序、重载后失效——因为 layui 会重建 td dom,原有监听器就丢了。正确做法是监听表格容器的委托事件:$(tableelem).on('click', 'td', function(){}),其中 tableelem 是 table.render() 返回的 elem 属性值。

常见错误现象:点第一页有效,翻页后点击无反应;或点了没报错也没效果——大概率是事件注册时机不对,比如在 render() 前就执行了绑定,或者没用 tableElem 而用了全局选择器(如 $('td'))导致跨表干扰。

  • 必须在 table.render() 的 done 回调里注册事件,此时 DOM 已渲染完成
  • 别用 $('.layui-table td'),应从 tableElem 出发:$(tableElem).on('click', 'td', ...)
  • 移动端需加 CSS:cursor: pointer 和 -webkit-tap-highlight-color: transparent,否则点击没视觉反馈

高亮样式必须用 class + !important,不能靠内联 style

用 $(this).css('border', '2px solid #2080f0') 或 $(this).attr('style', ...) 设置边框,大概率被 Layui 内部样式覆盖(比如 .layui-table tbody tr:hover td 的透明底色或重置规则)。唯一可靠方式是定义自定义 class,并在 CSS 中用 !important 提权:

.layui-table-cell-border-highlight {
  border: 2px solid #2080f0 !important;
  box-sizing: border-box !important;
}

每次点击前先清除所有已高亮的单元格:

  • $(tableElem).find('td.layui-table-cell-border-highlight').removeClass('layui-table-cell-border-highlight')
  • 再给当前 td 加上:$(this).addClass('layui-table-cell-border-highlight')
  • 不要操作 style 属性——Layui 重绘时会清空它

如何识别并区分不同列的单元格高亮

Layui 渲染时会给每个 td 加 data-field 属性(值为列配置里的 field),这是区分列最稳定的方式。比如某列配置为 {field: 'price', title: '价格'},对应 td 就有 data-field="price"。

如果只想让“价格”列支持边框高亮,可以在事件回调里加判断:

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载
  • if ($(this).data('field') !== 'price') return;
  • 或者反过来:只对特定列移除/添加高亮 class
  • 避免全表 td 都响应,减少误触和性能开销

注意:data-field 是字符串,不是数字索引,不受分页、排序影响,比 index 更可靠。

编辑态输入框的边框和单元格高亮是两回事

点击单元格触发编辑(如 edit: 'text')后弹出的 input,它的边框由 .layui-input 控制,和你给 td 加的高亮 class 无关。如果想让编辑框也同步变色,得额外覆盖 CSS:

.layui-table .layui-input:focus {
  border-color: #2080f0 !important;
  outline: none;
}

这个规则必须带 .layui-table 前缀,否则会影响页面其他地方的 .layui-input;且要加 !important,因为 Layui 默认用了内联或高优先级选择器。

真正容易被忽略的是:单元格高亮和编辑框聚焦是两个独立状态。用户可能先点单元格高亮,再点编辑框——这时你要决定是否自动移除高亮(通常建议移除,避免视觉冲突),这得靠事件冒泡控制或 focusin/focusout 监听配合处理。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

layui

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
css3教程
css3教程

php中文网为大家提供css3教程合集,CSS3的语法是建立在CSS原先版本基础上的,它允许使用者在标签中指定特定的HTML元素而不必使用多余的class、ID或JavaScript。php中文网还为大家带来css3的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

1800

10

有哪些css3渐变属性
有哪些css3渐变属性

css3中渐变属性有linear-gradient、radial-gradient、conic-gradient、repeating-linear-gradient、repeating-radial-gradient等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.01

2506

5

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

80

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

80

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

40

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

40

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

60

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

280

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

160

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 12.7万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 10.9万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习