这涉及以下jQuery分页代码:pagination/blob/master/src/jquery.pagination.js
我可以让它像当前代码那样运行良好,但是我想知道是否有人有任何建议让分页从7组显示页面,所以它们可以从第1-7页开始,它只显示导航中的页面。然后,当他们进入第8页,它将显示第8-14页等。
而不只是向上显示1-7、2-8、3-9等等,如本例所示:https://i.gyazo.com/5afa6e66e7e95f973d83191f45d8296e.mp4
我知道这可能相当困难,但我可能错了!
奖金是可以跳到7页一次,但我认为我可以分类,一旦这个问题解决了。
任何建议都非常感谢。
非常感谢!
发布于 2017-07-02 08:16:37
你想要的功能不是在那个插件中实现的。无论如何,您将需要修改插件代码以满足您的要求。您可以分叉项目并创建自己的修改实现,也可以在加载插件后覆盖页面中的代码。我将给你们举第二种选择的例子。
浏览一下插件源代码,我们发现这个有用的评论:
/**
* Calculate start and end point of pagination links depending on
* current_page and num_display_entries.
* @returns {Array}
*/
这很可能是我们感兴趣的代码的地方,因为注释告诉我们,这是计算开始和结束分页链接的地方。此注释应用于名为getInterval
的方法,该方法属于名为PaginationCalculator
的构造函数的prototype
,插件定义该构造函数并附加到全局jQuery对象($
)。
为了使我们修改开始和结束链接,我们将需要覆盖此方法。源显示该方法接受单个参数current_page
,并返回一个具有两个属性start
和end
的对象(尽管上面的注释显示该方法返回一个数组)。
我们知道,我们希望start
是配置插件实例(例如,7
)的num_display_entries
号的倍数。我们的start
可以是0
、7
、14
等,这取决于我们的current_page
属于哪个块。另外,我们知道我们的end
必须比我们的start
多7,除非这会产生一个比我们的页面总数更大的end
,在这种情况下,end
应该等于总页面数。我们可以使用PaginationCalculator
构造函数的另一个原型方法numPages
获得总页面数。
以下代码将满足我们的要求:
$.PaginationCalculator.prototype.getInterval = function (current_page) {
var num_display_entries = this.opts.num_display_entries;
var start = Math.floor(current_page / num_display_entries) * num_display_entries;
var end = Math.min(start + num_display_entries, this.numPages());
return { start: start, end: end };
};
我创建了一个JS Fiddle演示以供参考。
https://stackoverflow.com/questions/44866475
复制相似问题