作者您好,插件在使用中 当count参数与总页数相同时会出现多一页的bug。并且点击最后两页时首页会出现第0页的bug
针对该情况 做了下简单修改 ,修改如下:
我还是没太看懂计算规则 ,但是这么改过之后暂时不会有bug 望可与作者沟通 987758123qq
将119行
120行:
var start = current > opts.count - 1 ? current + opts.count - 1 > pageCount ? current - (opts.count - (pageCount - current)) : current - 2 : 1; var end = current + opts.count - 1 > pageCount ? pageCount : start + opts.count;
更换为以下代码即可解决问题:
前提是count默认是4,不要修改
也就是页码按钮最多有5个 1,2,3,4,5
如果修改了的话 不会有功能bug 但会有样式蹩脚的情况
var start = current > opts.count - 1 ? current + opts.count - 1 > pageCount ? current - (opts.count - (pageCount - current)) === 0 ? 1 : current - (opts.count - (pageCount - current)) : current - 2 : 1; var end = current + opts.count - 1 > pageCount ? pageCount : start === current && current === 1 && pageCount === opts.count ? opts.count : start + opts.count;
Uncaught TypeError: $(...).pagination is not a function
一直报这个错误
<link rel="stylesheet" href="css/jquery.pagination.css">
引入的都有
原代码中的$document对象的keydown事件和$obj的input propertychange事件,没有先释放后绑定,导致重复调用会不断幂次绑定相同事件,所以建议更正为【一下为更正后的代码】
// 输入跳转的页码
$obj.off().on('input propertychange', '.' + opts.jumpIptCls, function() {
var $this = $(this);
var val = $this.val();
var reg = /[^\d]/g;
if (reg.test(val)) $this.val(val.replace(reg, ''));
(parseInt(val) > pageCount) && $this.val(pageCount);
if (parseInt(val) === 0) $this.val(1); //最小值为1
});
//回车跳转指定页码
$document.off().on('keydown', function(e) {
if (e.keyCode == 13 && $obj.find('.' + opts.jumpIptCls).val()) {
var index = parseInt($obj.find('.' + opts.jumpIptCls).val());
that.filling(index);
typeof opts.callback === 'function' && opts.callback(that);
}
});
回复
我改了一下源码:
var start = current > opts.count - 1 ? current + opts.count - 1 > pageCount ? current - (opts.count - (pageCount - current)) : current - 2 : 1; var end = current + opts.count - 1 > pageCount ? pageCount : start + opts.count;
将119行120行 更换为以下代码即可解决问题:
前提是count默认是4,不要修改
也就是页码按钮最多有5个 1,2,3,4,5
如果修改了的话 不会有功能bug 但会有样式蹩脚的情况
var start = current > opts.count - 1 ? current + opts.count - 1 > pageCount ? current - (opts.count - (pageCount - current)) === 0 ? 1 : current - (opts.count - (pageCount - current)) : current - 2 : 1; var end = current + opts.count - 1 > pageCount ? pageCount : start === current && current === 1 && pageCount === opts.count ? opts.count : start + opts.count;
为什么callback里的函数不执行?
$(".pages").pagination({
totalData: 100,
showData: 10,
// pageCount: 10,
mode: 'fixed',
jump: true,
coping: true,
keepShowPN: true,
// homePage: '首页',
// endPage: '末页',
prevContent: '上一页',
nextContent: '下一页',
callback: function(api) {
console.log(api.getCurrent());
// pages = api.getCurrent();
// return pages;
$(".readall").html(api.getCurrent());
// $(".total").html("共"+10+"页,跳转至第");
}
回复
插件好像是有个小BUG,初始化时候pageCount,在以后调用setPageCount,修改这个值以后,并不能修改绑定事件中对应的pageCount,进行绑定事件
this.eventBind = function () {}中的
var pageCount = that.getPageCount() ;
应该放在每一个绑定事件中;
请大家看下,对不对。