初始化时curr值只能在jump回调中获取,首次渲染时first为true,此时obj.curr即初始页码;未传curr参数时默认为1,但不可直接从配置读取。

layui分页初始化时怎么拿到 curr 值
layui 的 laypage.render() 默认不主动暴露当前页码,curr 是内部状态,不能直接从配置对象里读取。你得靠它回调里的参数,或者手动维护一个变量。
常见错误是写成 laypage.config.curr 或试图从 options 里取 —— 这些都不存在,会 undefined。
- 初始化时如果没传
curr,默认是1,但这个值只在渲染时用,不存为可访问属性 - 必须在
jump回调里获取:第一个参数obj有curr字段,第二个参数first表示是否首次渲染 - 首次渲染时
first为true,这时你可以把obj.curr存到全局或闭包变量里,后续翻页就靠它
laypage.render({
elem: 'demo',
count: 100,
jump: function(obj, first) {
// obj.curr 就是当前页码
console.log('当前页:', obj.curr);
if (first) {
// 首次渲染,可保存初始页码
currentPage = obj.curr;
}
}
});
跳转后怎么实时更新 curr 并用于接口请求
很多人把 curr 当成静态配置项,以为改了配置就能“跳到某页”,其实不行 —— layui 分页的跳转必须走 laypage.jump() 方法,否则 DOM 更新了但 jump 回调不触发,curr 状态就断了。
-
laypage.jump(elemId, {curr: 5})才能真正触发跳转并执行jump回调,obj.curr就是5 - 别直接操作
laypage的 DOM 元素去模拟点击,那样不会触发回调,curr拿不到 - 接口请求务必放在
jump回调里,而不是按钮 click 里 —— 否则可能拿到旧的curr值
// ✅ 正确:用 laypage.jump 触发并获取新 curr
document.getElementById('goBtn').onclick = function() {
laypage.jump('demo', {curr: 3});
};
// ✅ 在 jump 回调里发请求
jump: function(obj) {
$.get('/api/list?page=' + obj.curr + '&limit=' + obj.limit, function(res) {
// 渲染数据...
});
}
为什么有时候 curr 总是 1?
最常踩的坑是:页面加载后手动调了 laypage.render(),但没传 curr,又没在 jump 里处理首次渲染,结果所有翻页行为都从第 1 页开始。
- URL 带参如
?page=3时,必须手动解析并传给curr配置项,layui 不自动读 URL - 服务端返回总条数
count为0或null时,laypage 会重置curr为1,且不报错 - 多次调用
render()而没销毁(用laypage.destroy(id)),旧实例残留可能导致curr错乱
自定义页码输入跳转时 curr 怎么同步
layui 自带的「跳转」输入框只负责 UI,不自动绑定事件,curr 不会因此更新 —— 你得自己监听回车或按钮,再调 laypage.jump()。
- 输入框值要校验:非数字、超出范围(比如 > totalPage)都要拦截,否则
jump会静默失败 - 跳转前最好先
laypage.render()一次确保实例存在,或用laypage.getPagination(elemId)(需 layui 2.8+)查实例状态 - 别用
parseInt(input.value)直接跳,要结合Math.min()和Math.max()限制范围
document.getElementById('jumpInput').onkeydown = function(e) {
if (e.key === 'Enter') {
let val = parseInt(this.value) || 1;
let totalPage = Math.ceil(100 / 10); // 假设每页10条,共100条
val = Math.max(1, Math.min(val, totalPage));
laypage.jump('demo', {curr: val});
}
};
layui 的 curr 不是属性,是上下文快照;它只活在 jump 回调那一瞬间。想长期持有,就得你自己存;想驱动跳转,就得用 laypage.jump();想避免错乱,就得管好初始化、销毁和边界校验。











