讲师中心 微信公众号
AI工具推荐 视频效率加速

Layui表格如何监听分页切换事件

老芳同学_3432

老芳同学_3432

发布时间:2026-06-18 09:49:13

|

774人浏览过

|

来源于php中文网

原创

layui table 的 page 事件监听分页参数更新后、数据请求前的时机,回调参数为 {curr, limit},用于拦截或修改请求;需在 render 的 done 回调中用 this 绑定,且仅对服务端分页生效。

layui table 的 page 事件到底监听什么

它监听的不是“点击下一页”这个动作,而是表格内部完成分页参数更新、重新加载数据前的那一刻。换句话说,page 事件触发时,curr(当前页码)和limit(每页条数)已经变了,但新数据还没拉下来——这是你干预请求参数或取消默认加载的最后机会。

常见错误是把它当成纯 UI 点击事件来用,比如想在点下一页时弹个提示,结果发现点了没反应,或者提示弹了两遍——因为表格默认会自动重载,你又手动调了table.reload(),造成重复请求。

  • 只在初始化表格时通过 done 回调里的 res 拿到当前页数据,别指望 page 事件里能直接拿到新数据
  • page 事件的回调参数是 {curr: 2, limit: 10},不是完整的 obj 实例,没法调 obj.config.url
  • 如果你用了服务端分页,page 触发后表格会立刻按新 curr/limit 发请求;想拦截就得返回 false,并自己调 table.reload()

怎么正确绑定 page 事件(不是 jump)

很多人搜“layui 分页监听”,结果绑了 jump 事件,那是用于监听用户主动跳转到某页(比如输入页码回车),不是常规翻页。真要响应“上一页/下一页/首页/末页”点击,必须用 page。

实操上,不能在 table.render() 外部用 table.on('page(...)', ...) 去监听——那监听的是所有表格实例,且容易漏掉。正确姿势是在 render 的 done 回调里,用 this 拿到当前实例再绑定:

table.render({
  elem: '#demo',
  url: '/api/list',
  page: true,
  done: function(res, curr, count) {
    // 此处 this 指向当前 table 实例
    table.on('page(demo)', function(obj){
      console.log('页码变了:', obj.curr, '条数:', obj.limit);
      // 想加埋点、改请求头、或根据页码动态传参,就在这里做
    });
  }
});
  • 事件名格式必须是 page(你的 table 的 id 或 lay-id),id 不对就完全不触发
  • 如果渲染时没设 id,就用 lay-id 属性值;两者都没,page 事件根本不会注册
  • 别在 done 外重复绑定,否则每次重载都新增一个监听器,导致回调执行多次

想改请求参数?别在 page 里直接改 config

有人试过在 page 回调里写 this.config.where = {...},发现没用——因为此时表格已经把旧参数缓存进请求队列了,改 config 不影响本次请求。

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

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

下载

真正可控的方式只有两个:一是返回 false 阻止默认行为,再手动 reload 并传新参数;二是把动态参数写进 where 函数里,让它每次请求都实时计算:

table.render({
  where: function(){
    return {
      token: localStorage.getItem('token'),
      tab: $('#tab-filter').val(), // 每次请求都取最新值
      timestamp: Date.now()
    };
  }
});
  • 用函数形式的 where 最省心,适合依赖外部表单、URL 参数或状态的场景
  • 如果必须在 page 里干预,记得 return false;,然后调 table.reload('demo', { where: { ... } })
  • 别在 page 里调 table.reload() 却不传 where,那等于白拦——还是发原来的参数

兼容性注意:page 在 layui 2.8+ 才稳定

2.6.x 版本中,page 事件存在触发时机错乱问题:有时在数据返回后才触发,有时压根不触发。升级到 2.8.18 或更高版本才能确保它在请求发起前准时唤起。

如果你无法升级,替代方案是监听分页容器的点击事件,从 DOM 上读当前页码:

$(document).on('click', '.layui-laypage-next, .layui-laypage-prev', function(){
  const curr = parseInt($('.layui-laypage-curr em').text()) || 1;
  console.log('手动推算当前页:', curr);
});
  • DOM 监听不可靠,比如用户点页码输入框回车,这种就捕获不到
  • 2.8+ 的 page 事件已修复与 limit 切换的联动问题,切换每页条数也会触发,且 obj.limit 是新值
  • 别信网上那些“给 table.set() 加钩子”的野路子,layui 源码里没暴露这个入口

最常被忽略的一点:page 事件只对开启了 page: true 的表格生效,静态数据(data: [...] )表格即使配置了分页条,也不会触发它——因为压根不发请求。

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
ajax教程
ajax教程

php中文网为大家带来ajax教程合集,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。php中文网还为大家带来ajax的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2940

2023.06.14

ajax中文乱码解决方法
ajax中文乱码解决方法

ajax中文乱码解决方法有设置请求头部的字符编码、在服务器端设置响应头部的字符编码和使用encodeURIComponent对中文进行编码。本专题为大家提供ajax中文乱码相关的文章、下载、课程内容,供大家免费下载体验。

360

2023.08.31

ajax传递中文乱码怎么办
ajax传递中文乱码怎么办

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2773

2023.11.15

ajax网站有哪些
ajax网站有哪些

使用ajax的网站有谷歌、维基百科、脸书、纽约时报、亚马逊、stackoverflow、twitter、hacker news、shopify和basecamp等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1161

2024.09.24

Playwright 测试失败怎么办
Playwright 测试失败怎么办

Playwright测试失败专题汇集超时、定位器匹配、浏览器提前关闭、依赖与插件配置、文件上传、SSL及Docker启动等故障文章,并介绍通过截图、报告和Trace定位错误。

0

2026.10.21

Playwright 页面操作指南
Playwright 页面操作指南

Playwright页面操作专题汇集元素定位、点击与输入、等待响应、多页面切换、Iframe、事件监听及文件处理的已审核文章,便于按操作场景查阅示例与常见问题。

0

2026.10.21

Playwright 入门教程
Playwright 入门教程

Playwright入门专题汇集测试框架安装、VS Code配置、录制脚本、编写首个用例、运行调试及查看报告的已审核文章,帮助初学者搭建端到端测试流程。

0

2026.10.21

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

100

2026.10.16

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

80

2026.10.16

热门下载

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

精品课程

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

共87课时 | 13万人学习

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

共89课时 | 11.2万人学习

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

共5课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn