这是 Tumblr 文档中的说明:
Tumblr.LikeButton.get_status_by_page(n)
:请求新的帖子页面后调用此函数。将刚刚加载的页码作为整数。
Tumblr.LikeButton.get_status_by_post_ids([n,n,n])
:请求单个帖子的“赞”状态。获取帖子 ID 数组。
这个问题已被问过几次并提供解决方案 here和 here这两个答案都可以告诉您如何使用帖子 ID 请求“赞”按钮状态。那么有没有更简单、可能更快的解决方案呢?
I'll share how i do it, please share your opinions too.
最佳答案
接受的答案中发生了什么 here是:
- 首先,您必须为所有帖子提供 ID。
- 加载新帖子后,查找类为 (.post) 的所有元素(帖子)。
- 获取新帖子的 ID。
- 请求类似按钮状态以及新帖子 ID 数组
现在,您可以在新页面加载页码后请求类似按钮的状态。
- 首先获取页面中帖子的数量。
- 加载新帖子后再次获取帖子数量。
- 将当前帖子数除以初始帖子数即可得到页码。
请求类似按钮状态和页码。
var $initialNumberOfPosts = $('.post').length; // Get number of posts $('#posts').infinitescroll({ loading: { msgText: "Loading..", img: "/loading_image.gif", finishedMsg: "End!" }, navSelector : "#pagination", nextSelector : "#nextpage", itemSelector: ".post" }, function(newElements) { var $currentNumberOfPosts = $('.post').length; // Get current number of posts var pageNumber = Math.ceil($currentNumberOfPosts / $initialNumberOfPosts); // Get page number Tumblr.LikeButton.get_status_by_page(pageNumber); // Request like button status });
*使用 (.ceil),因为用户可能在每页选择 15 个帖子,但可能少于最后一页的帖子数。
更新:2014 年 3 月 5 日。
他们有更简单的方法来使用 Tumblr 变量获取页码并在新页面加载时增加页码。请尝试以下操作:
- 首先使用 Tumblr 变量获取页码:{CurrentPage}。
- 加载新页面后增加当前页码。
请求类似按钮状态以及当前页码。
var pageNumber = {CurrentPage}; // Get current Page number ( Will not work in external file) $('#posts').infinitescroll({ loading: { msgText: "Loading..", img: "/loading_image.gif", finishedMsg: "End!" }, navSelector : "#pagination", nextSelector : "#nextpage", itemSelector: ".post" }, function(newElements) { pageNumber++; // Get page number after new page is loaded. Tumblr.LikeButton.get_status_by_page(pageNumber); // Request like button status });
//结束更新。
*这是一个示例脚本,说明如何使用 Paul Irish 的无限滚动来请求类似按钮状态。
因此,这两种方式大约需要 3 - 4 个步骤。我的解决方案似乎更容易设置,所以我使用它。您可以使用您认为更好的东西。
我认为我的解决方案更快,因为它使用简单的函数,但这正是我的想法;我现在没有任何证据。谢谢!
关于javascript - 如何在无限滚动加载新页面后请求类似 Tumblr 的按钮状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20789608/