Layui如何实现在表格中点击头像后直接弹出该用户的名片卡片

幻夢星雲

幻夢星雲

2026-06-23

995人浏览

原创

表格头像列需在templet中添加lay-event="showCard",再通过table.on('tool(表ID)', callback)监听并调用layer.open渲染名片弹窗,数据统一从obj.data安全获取,避免内联onclick和XSS风险。

表格头像列如何绑定点击事件并触发名片弹窗

直接在 layui.tablecols 配置中用 templet 渲染带 onclick 的头像 html 即可,但要注意事件委托问题——表格重绘后原生 onclick 会失效。必须用 layui.table.on('tool') 监听自定义工具栏事件,或改用 lay-event 属性配合事件委托。

推荐做法:在头像列模板里写 lay-event="showCard",然后统一监听:

table.on('tool(userTable)', function(obj){
  if(obj.event === 'showCard'){
    const data = obj.data;
    layer.open({
      title: '用户名片',
      content: buildCardHtml(data), // 自行拼接名片 DOM
      area: ['320px', '400px']
    });
  }
});

名片卡片 HTML 结构怎么写才适配 layer 弹窗

layer 默认把 content 当字符串渲染,所以得手动拼接结构。别用复杂组件(如 layui.card),layer 弹窗不自动执行其中的 JS 或样式初始化。重点是控制内边距、头像圆角、信息对齐和响应式断行。

常见错误:直接塞一个 <div class="layui-card"> 进去,结果样式不生效、头像拉伸、手机号换行错乱。 <ul> <li>头像用 <code><img src="" class="layui-nav-img" style="max-width:90%"> 最稳,复用 layui 原生样式

  • 姓名用 <h3 style="margin:10px 0 5px"></h3>,避免默认 h3 外边距过大
  • 关键字段(如部门、职位)加 white-space: nowrap; overflow: hidden; text-overflow: ellipsis; 防溢出
  • 手机号等长文本建议包裹 <span style="word-break:break-all"></span>
  • 如何从表格数据安全提取用户 ID 并传给名片接口

    千万别在 templet 里直接拼接 data.idonclick="showCard('+data.id+')" —— XSS 风险高,且引号嵌套极易报错。所有数据都应走 obj.data 上下文获取。

    如果名片需实时加载(比如含最新动态),应在 layer.opensuccess 回调里发请求,用 obj.data.id 作为参数:

    layui手机车牌号码键盘代码
    layui手机车牌号码键盘代码

    layui手机车牌号码键盘代码是一款基于jQuery跟layui制作的手机端车牌号码输入弹出键盘选择,支持新能源汽车车牌输入格式代码。

    下载
    layer.open({
      content: '<div>加载中...</div>',
      success: function(layero){
        $.get('/api/user/card?id=' + obj.data.id, function(res){
          $(layero).find('.layui-layer-content').html(buildCardHtml(res.data));
        });
      }
    });

    注意:obj.data 是当前行原始数据,字段名必须和 table.render()cols 中定义的一致,比如后端返回 user_id,但你配置了 field: 'id',那这里就只能用 obj.data.id

    移动端点击头像没反应?检查这三点

    不是代码问题,大概率是交互阻塞:

    • 确认没同时绑定了 clicktouchstart,导致 iOS Safari 触发两次或被屏蔽
    • 检查是否启用了 cellMinWidth: true 或列宽过小,头像被压缩到不可点击区域(用 devtools 检查实际渲染尺寸)
    • layer 弹窗在 iOS 上可能被 body { overscroll-behavior: contain; } 拦截,临时去掉该样式测试

    真正麻烦的是异步加载名片时的 loading 状态管理——layer 不提供内置 loading 卡片,得自己用 content 切换字符串,或者提前 render 一个 skeleton 占位 DOM。这点很容易被忽略,结果用户连点两次才看到内容。

    相关文章

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

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

    下载

    相关标签:

    layui

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

    相关专题

    更多
    json数据格式
    json数据格式

    JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

    2023.08.07

    1563

    5

    json是什么
    json是什么

    JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

    2023.08.23

    1426

    1

    jquery怎么操作json
    jquery怎么操作json

    操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

    2023.10.13

    589

    3

    go语言处理json数据方法
    go语言处理json数据方法

    本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

    2025.09.10

    1338

    7

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

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

    2023.10.23

    2051

    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

    2868

    6

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

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

    2025.12.30

    563

    19

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

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

    2025.12.30

    410

    12

    html5空格代码怎么写
    html5空格代码怎么写

    在HTML5中,空格不能直接通过键盘空格键实现,需使用特定代码。本合集详解常用空格写法:&nbsp;(不间断空格)、&ensp;(半个中文空格)、&emsp;(一个中文空格)及CSS的white-space属性等方法,帮助开发者精准控制页面排版,避免因空格失效导致布局错乱,适用于新手入门与实战参考。

    2025.12.30

    209

    8

    热门下载

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

    精品课程

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

    共87课时 | 11.4万人学习

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

    共89课时 | 9.7万人学习

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

    共5课时 | 1.5万人学习