1

我在 tumblr 博客中使用了无限滚动插件,只要用户在首页,一切正常,例如:“{someblog}.tumblr.com”。

从“{someblog}.tumblr.com/page/2”等开始,插件似乎根本没有加载(它没有隐藏导航元素)。初始化这是我用来调用它的代码:

$('#container').infinitescroll({
loading: {
            finished: undefined,
            finishedMsg: "Finished",
            img: "preloader.gif",
            msg: null,
            msgText: "Loading...",
            selector: null,
            speed: 'fast',
            start: undefined
        },
         state: {
            isDuringAjax: false,
            isInvalidPage: false,
            isDestroyed: false,
            isDone: false, // For when it goes all the way through the archive.
            isPaused: false,
            currPage: 1
         },
        callback: undefined,
        debug: false,
        behavior: undefined,
        binder: $(window), // used to cache the selector
        nextSelector: "#next a",
        navSelector: ".navigation",
        contentSelector: "#container", // rename to pageFragment
        itemSelector: "div.post",
        animate: false,
        pathParse: undefined,
        dataType: 'html',
        appendCallback: true,
        bufferPx: 400
    },
...

编辑:我启用了调试信息,我得到了以下信息:

({0:“抱歉,我们无法解析您的下一篇(上一篇)网址。验证您的 css 选择器指向正确的 A 标记。如果您仍然收到此错误:大喊大叫,并在无限时寻求帮助-scroll.com."})

({0:"determinePath", 1:"/page/4"})

({0:"绑定", 1:"绑定"}

似乎它确实找到了下一页的地址-“/page/4”(因为我在第3页)。但由于某种原因它不能“解析”它?

该插件是否可能只能在第一页上运行,其中下一页的链接包含“2”?如果是这样,我该如何覆盖它?

提前非常感谢!

4

1 回答 1

1

感谢@graygilmore,我想通了。这是需要添加到代码中的行:

pathParse: function() {
    return ['http://{Name}.tumblr.com/page/', '']
},

请注意,这{Name}是一个 Tumblr 变量,不需要更改 - Tumblr 会自动替换它。

此外 - 此行应添加到state: {...}块中:

currPage: {CurrentPage}

(在我上面的问题中的示例中,我只是将其设置为“1”)。

{CurrentPage}也是一个 Tumblr 变量,因此对于正在查看的每个页面,它都会自动替换为当前页码。

现在 Infinite-Scroll 可以在博客的每个页面上正确加载,这在想要创建“加载更多帖子”按钮时特别有用,它可以让用户在常规(分页)导航和无限滚动之间进行选择。

于 2012-09-16T10:37:03.887 回答