layui table 实例的 config 对象不实时保存当前页码,权威来源是 done 回调的 curr 参数或 page 事件的 data.curr;config.page.curr 仅在 done 执行后才同步更新,不可靠。

layui table 实例的 config 对象里存着当前页码
layui 的 table.render() 返回一个实例对象,但它本身不直接暴露 curr 属性。真正记录当前页码的是实例内部的 config 对象(渲染时传入的配置合并后的结果),且该对象在分页触发后会自动更新。
所以最稳妥的方式是:先拿到 table 实例,再读取它的 config.page.curr。
- 确保你已用
var tableIns = table.render({...})保存了实例引用,否则无法后续获取 -
config.page是渲染时page: true或page: { curr: 2 }配置的合并结果,未开启分页时该字段可能不存在 - 在
done回调或page事件中读取最安全,因为此时config已同步更新
在 done 回调里直接读 config.page.curr
done 是表格数据加载完成、分页栏渲染完毕后的钩子,此时 config.page.curr 已反映真实当前页码,适合做初始化状态同步或日志记录。
table.render({
elem: '#demo',
url: '/api/list',
page: true,
done: function(res, curr, count) {
// curr 参数是 layui 传入的当前页码(数字),可直接用
console.log('done 中 curr:', curr); // ✅ 推荐:简洁可靠
// 或者从实例 config 读(需先有实例引用)
console.log('config.page.curr:', this.config.page.curr); // 也对,但多一层
}
});
注意:done 的第二个参数 curr 就是你要的页码,无需绕路查 config —— 这是最直接的来源。
监听 table.on('page(...) 事件时怎么拿 curr
当用户点击分页按钮时,layui 会触发 page 事件,事件回调的 data 参数里就包含最新页码。
table.on('page(test)', function(data){
console.log('page 事件中的 curr:', data.curr); // ✅ 正确写法
console.log('limit:', data.limit); // 每页条数
});
- 别写成
data.page.curr或data.config.curr,data是扁平对象,只有curr和limit - 事件名里的
test要和render时设置的id一致,否则监听不到 - 如果没设
id,事件名用page(*)可捕获所有表格分页事件,但需靠data.elem区分具体表格
手动跳转分页时如何确保 curr 同步更新
用 table.reload() 并传入 page: { curr: 3 } 时,layui 会触发重新请求并更新分页栏,但 config.page.curr 不会立刻生效——它只在请求返回、done 执行后才更新。
- 想立即拿到目标页码?直接用你 reload 时传的值:
var targetCurr = 3; - 想等刷新完成后再读?必须在
done回调里取curr参数,或在done里访问this.config.page.curr - 避免在
reload后立刻查config.page.curr,此时它还是旧值
分页状态实际由服务端响应和前端回调共同驱动,curr 的“权威来源”永远是 done 的第二个参数或 page 事件的 data.curr,而不是实时读配置对象。


















