Javascript 使用中间页码分页
我正在尝试用JavaScript创建分页,类似于您现在看到的大多数分页,如果有很多页面,它将使用点分隔页面显示。也就是说,12。。。22 23 24 25 26 27 28 ... 110 111 这是我到目前为止的代码,但是这不起作用。我只显示当前页面。你知道我遗漏了什么吗 仅供参考-您会注意到我使用的是下划线.js和jQuery 您还会注意到,我有iPage,默认情况下,我的分页从0开始,页面是我当前使用的页面索引,因此我只是为了显示而添加1-我尝试了两种方法,但都遇到了相同的问题 非常感谢你的帮助 编辑:我刚刚在下面添加了一个else语句,现在它显示12321,21是最后一页,1是我所在的页面Javascript 使用中间页码分页,javascript,jquery,pagination,paging,underscore.js,Javascript,Jquery,Pagination,Paging,Underscore.js,我正在尝试用JavaScript创建分页,类似于您现在看到的大多数分页,如果有很多页面,它将使用点分隔页面显示。也就是说,12。。。22 23 24 25 26 27 28 ... 110 111 这是我到目前为止的代码,但是这不起作用。我只显示当前页面。你知道我遗漏了什么吗 仅供参考-您会注意到我使用的是下划线.js和jQuery 您还会注意到,我有iPage,默认情况下,我的分页从0开始,页面是我当前使用的页面索引,因此我只是为了显示而添加1-我尝试了两种方法,但都遇到了相同的问题 非常感谢
var midRange = 7;
var paging = '';
var iPage = page + 1;
if(totalPages > 10) {
var startRange = iPage - Math.floor(midRange / 2);
var endRange = page + Math.floor(midRange / 2);
if(startRange <= 0) {
endRange += Math.abs(startRange + 1);
startRange = 1;
}
if(endRange > totalPages) {
startRange -= (endRange - totalPages);
endRange = totalPages;
}
var range = _.range(startRange, endRange);
for(i = 1; i <= totalPages; i++) {
if(range[0] > 2 && i == range[0]) {
paging += ' ... ';
console.log(paging);
}
inArray = $.inArray(i, range);
if (inArray > -1)
isInArray = true;
else
isInArray = false;
if(i == 0 || i == totalPages || isInArray) {
if(i == iPage) {
paging += '<a href="#"><b>'+i+'</b></a>';
console.log(paging);
} else {
paging += '<a href="#">'+i+'</a>';
}
}
if(range[midRange-1] < totalPages && i == range[midRange-1]) {
paging += ' ... ';
console.log(paging);
}
}
} else {
for(i = 1; i <= totalPages; i++) {
if(i == iPage) {
paging += '<a href="#"><b>'+i+'</b></a>';
console.log(paging);
} else {
paging += '<a href="#">'+i+'</a>';
console.log(paging);
}
}
}
您可以考虑使用对数样式分页。在这里查看我的帖子:。
否则,通过点击导航链接,在“…”范围内的任何页面实际上都不容易。我的答案中包含了PHP和ASP的代码;转换为javascript应该不难。我的解决方案是nodejs+下划线+jade+引导 前: 翡翠索引
.pagination
ul
- if(page > 0)
li
a(href='/page/'+ page) Prev
- var _next = 10, _prev = (page +1) - 10
- if(pages - (page + 1) < _next) _next = pages - (page + 1)
- if(_prev < 0) _prev = 1;
- var range = _.range(_prev, page + (_next+2));
- each i in range
li(class=i==page+1?'active':null)
a(href='/page/'+(i)) #{i}
- if((page+1) < pages)
li
a(href='/page/'+ (page +1)) Next
.pagination
ul
- if(page > 0)
li
a(href='/page/'+ page) Prev
- var _next = 10, _prev = (page +1) - 10
- if(pages - (page + 1) < _next) _next = pages - (page + 1)
- if(_prev < 0) _prev = 1;
- var range = _.range(_prev, page + (_next+2));
- each i in range
li(class=i==page+1?'active':null)
a(href='/page/'+(i)) #{i}
- if((page+1) < pages)
li
a(href='/page/'+ (page +1)) Next