首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery分页插件-7组显示

jQuery分页插件-7组显示
EN

Stack Overflow用户
提问于 2017-07-02 00:24:56
回答 1查看 87关注 0票数 0

这涉及以下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页一次,但我认为我可以分类,一旦这个问题解决了。

任何建议都非常感谢。

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-02 08:16:37

你想要的功能不是在那个插件中实现的。无论如何,您将需要修改插件代码以满足您的要求。您可以分叉项目并创建自己的修改实现,也可以在加载插件后覆盖页面中的代码。我将给你们举第二种选择的例子。

浏览一下插件源代码,我们发现这个有用的评论:

代码语言:javascript
运行
复制
/**
 * Calculate start and end point of pagination links depending on 
 * current_page and num_display_entries.
 * @returns {Array}
 */

这很可能是我们感兴趣的代码的地方,因为注释告诉我们,这是计算开始和结束分页链接的地方。此注释应用于名为getInterval的方法,该方法属于名为PaginationCalculator的构造函数的prototype,插件定义该构造函数并附加到全局jQuery对象($)。

为了使我们修改开始和结束链接,我们将需要覆盖此方法。源显示该方法接受单个参数current_page,并返回一个具有两个属性startend的对象(尽管上面的注释显示该方法返回一个数组)。

我们知道,我们希望start是配置插件实例(例如,7)的num_display_entries号的倍数。我们的start可以是0714等,这取决于我们的current_page属于哪个块。另外,我们知道我们的end必须比我们的start多7,除非这会产生一个比我们的页面总数更大的end,在这种情况下,end应该等于总页面数。我们可以使用PaginationCalculator构造函数的另一个原型方法numPages获得总页面数。

以下代码将满足我们的要求:

代码语言:javascript
运行
复制
$.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演示以供参考。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44866475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档