作者您好,插件在使用中 当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() ;
应该放在每一个绑定事件中;
请大家看下,对不对。