Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在新页面加载无限滚动后请求类似Tumblr的按钮状态_Javascript_Jquery_Ajax_Tumblr_Infinite Scroll - Fatal编程技术网

Javascript 如何在新页面加载无限滚动后请求类似Tumblr的按钮状态

Javascript 如何在新页面加载无限滚动后请求类似Tumblr的按钮状态,javascript,jquery,ajax,tumblr,infinite-scroll,Javascript,Jquery,Ajax,Tumblr,Infinite Scroll,这是Tumblr文档中的说明: Tumblr.LikeButton.get_status_by_page(n):在请求新的帖子页面后调用此函数。获取刚加载为整数的页码 Tumblr.LikeButton.get_status_by_post_id([n,n,n]):请求单个post的Like status。获取一个post ID数组 这个问题在解决方案中已经被问了几次,两个答案都可以告诉您如何使用post ID请求类似按钮的状态。那么,有没有一个更简单、可能更快的解决方案 我将分享我是如何做到这

这是Tumblr文档中的说明:

Tumblr.LikeButton.get_status_by_page(n)
:在请求新的帖子页面后调用此函数。获取刚加载为整数的页码

Tumblr.LikeButton.get_status_by_post_id([n,n,n])
:请求单个post的Like status。获取一个post ID数组

这个问题在解决方案中已经被问了几次,两个答案都可以告诉您如何使用post ID请求类似按钮的状态。那么,有没有一个更简单、可能更快的解决方案

我将分享我是如何做到这一点的,也请分享你的意见


公认的答案是:

  • 首先,你必须给所有的帖子提供ID
  • 加载新帖子后,查找类为(.post)的所有元素(帖子)
  • 获取新帖子的ID
  • 具有新帖子ID数组的类请求按钮状态
  • 现在,在新页面加载了页码之后,您可以通过这种方式请求like按钮状态

  • 首先获取页面中的帖子数
  • 加载新帖子后,再次获取帖子数量
  • 将当前文章数除以初始文章数,得到页码
  • 请求类似按钮的状态和页码

        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
        });
    
        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
        });
    
  • *使用(.ceil),因为用户可能已选择每页15篇文章,但可以少于最后一页中的文章

    更新日期:2014年3月5日。

    使用Tumblr变量获取页码,并在加载新页面时增加页码,这是一种更简单的方法。请尝试以下操作:

  • 首先使用Tumblr变量{CurrentPage}获取页码
  • 加载新页面后,增加当前页码
  • 具有当前页码的请求类按钮状态

        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
        });
    
        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个步骤。我的解决方案似乎更容易为我设置,所以我使用它。你可以用你觉得更好的东西


    我认为我的解决方案更快,因为它使用简单的函数,但这正是我的想法;我现在没有任何证据。谢谢大家!

    仅供参考,您也可以使用Post id:@mikeddt是的,问题中链接了带您答案的问题。谢谢!:)哈,对不起,我甚至没看到那部分没关系,节日快乐!:)@我知道你是最棒的,半天来一直在想这个问题。您的代码可以工作,而且非常容易。