Layui表格怎么在单元格中嵌套渲染layui进度条组件

陌强君_6776

陌强君_6776

2026-06-14

956人浏览

原创

正确做法是在templet中输出带data属性的容器,如,再于done回调中遍历并调用layui.progress(elem[0], {percent, barColor, text})初始化。

layui table 的 templet 里怎么渲染 layui.progress

不能直接在 templet 字符串里写 layui.progress() 调用——它不是纯 html 渲染函数,需要 dom 挂载和模块初始化。表格单元格是字符串模板阶段生成的,此时 layui.progress 还没执行,也没对应 dom 元素可绑定。

正确做法是:用 templet 输出一个带唯一标识(如 data-progress-id)的容器,再在 done 回调里遍历这些容器、逐个调用 layui.progress。

  • 必须等表格渲染完成才操作进度条,所以一定要放在 done 回调里,不能放 render 后或 templet 内部
  • templet 返回的 HTML 必须包含可被 JS 定位的元素,比如 <div class="progress-box" data-value="65"></div>
  • 避免用 id,因为表格可能有分页/重载,重复 id 会出问题;优先用 data-* 属性传参

templet 怎么写才能兼容进度条参数传递

进度条需要值(percent)、颜色(barColor)、文字(text)等,这些不能硬编码,得从当前行数据动态取。Layui 表格 templet 支持函数形式,参数是 d(当前行数据对象),返回字符串即可。

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

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

下载
  • 推荐用 templet: function(d) { return '<div class="layui-progress" data-percent="' + d.rate + '" data-color="' + (d.status === 'high' ? '#5FB878' : '#FFB800') + '"></div>'; }
  • 不要在模板里写 style 或内联 onclick,保持语义清晰,样式和行为都留到 done 统一处理
  • 如果某行没有进度值(如 d.rate 是 null 或 undefined),建议 fallback 到 0,否则 layui.progress 可能报错或不渲染

done 回调里怎么安全调用 layui.progress

done 是表格完成渲染后触发的钩子,此时所有单元格 DOM 已就位,可以放心查询和初始化组件。

  • 先用 layui.$(或原生 document.querySelectorAll)找所有带 data-percent 的进度容器,例如:layui.$('.progress-box[data-percent]')
  • 遍历每个元素,读取 data-percent 和 data-color,再调用 layui.progress:layui.progress(elem, { percent: value, barColor: color, text: value + '%' })
  • 注意:layui.progress 的第一个参数必须是 DOM 元素(不是 jQuery 对象),所以要用 elem[0] 或 elem.get(0)
  • 如果表格启用了分页或重载(reload),done 会多次触发,每次都要重新查、重新 init,无需手动销毁旧实例

为什么用 layui.progress 而不用纯 CSS 实现

纯 CSS 进度条更轻量,但 layui.progress 提供了三件事:动态更新支持、内置文字对齐、主题色自动适配(比如暗色模式下文字反色)。如果你只需要静态展示且不涉及后续修改,CSS 确实更快更稳。

  • 用 layui.progress 的真实理由通常是:后续要响应式更新某行进度(比如轮询刷新),而它提供了 layui.progress.update() 方法
  • 但如果只是初始化一次,且项目已引入 Layui,用它省去样式维护成本;若没引入 Layui 或追求极致性能,用 2 行 CSS + 内联 width 更直接
  • 容易忽略的一点:layui.progress 默认会在容器内插入两个 <span></span>,如果单元格高度受限(比如设置了 line-height: 1),文字可能被截断,需额外加 white-space: nowrap; overflow: visible;
表格单元格里嵌进度条,核心就两步:模板留坑、done 填坑。别试图在 templet 里执行组件逻辑,也别漏掉 done 的 DOM 就绪前提。最常卡住的地方,其实是忘了把 jQuery 对象转成原生 DOM 传给 layui.progress。

相关文章

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

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

下载

相关标签:

layui layui表格

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

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.11

2263

5

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

2023.10.09

4883

6

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

2024.03.19

5970

13

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

2024.03.22

5458

10

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

2024.05.22

783

5

html5动画制作有哪些制作方法
html5动画制作有哪些制作方法

html5动画制作方法有使用CSS3动画、使用JavaScript动画库、使用HTML5 Canvas等。想了解更多html5动画制作方法相关内容,可以阅读本专题下面的文章。

2023.10.23

3771

6

HTML与HTML5的区别
HTML与HTML5的区别

HTML与HTML5的区别:1、html5支持矢量图形,html本身不支持;2、html5中可临时存储数据,html不行;3、html5新增了许多控件;4、html本身不支持音频和视频,html5支持;5、html无法处理不准确的语法,html5能够处理等等。想了解更多HTML与HTML5的相关内容,可以阅读本专题下面的文章。

2024.03.06

6328

6

html5从入门到精通汇总
html5从入门到精通汇总

想系统掌握HTML5开发?本合集精选全网优质学习资源,涵盖免费教程、实战项目、视频课程与权威电子书,从基础语法到高级特性(Canvas、本地存储、响应式布局等)一应俱全,适合零基础小白到进阶开发者,助你高效入门并精通HTML5前端开发。

2025.12.30

774

19

html5新老标签汇总
html5新老标签汇总

HTML5在2026年持续优化网页语义化与交互体验,不仅引入了如<header>、<nav>、<article>、<section>、<aside>、<footer>等结构化标签,还新增了<video>、<audio>、<canvas>、<figure>、<time>、<mark>等增强多媒体与

2025.12.30

674

12

热门下载

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

精品课程

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

共87课时 | 12.7万人学习

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

共89课时 | 10.9万人学习

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

共5课时 | 1.6万人学习