我在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标记。如果您仍然收到此错误:大喊,尖叫,并请求在infinite-scroll.com上提供帮助。“})
({0:“determinePath”,1:“/ page / 4”})
({0:“Binding”,1:“bind”}
它似乎确实找到了下一页的地址 - “/ page / 4”(因为我在第3页)。但它出于某种原因不能“解析”它?
插件是否可以仅在第一页上运行,其中下一页的链接包含“2”?如果是这样,我该如何覆盖呢?
提前多多感谢!
答案 0 :(得分:1)
感谢@graygilmore我明白了。这是需要添加到代码中的行:
pathParse: function() {
return ['http://{Name}.tumblr.com/page/', '']
},
请注意{Name}
是一个Tumblr变量,不需要更改 - Tumblr会自动替换它。
此外 - 此行应添加到state: {...}
块中:
currPage: {CurrentPage}
(在我上面的问题中的示例中,我只是将其设置为“1”)。
{CurrentPage}
也是一个Tumblr变量,因此对于每个正在查看的页面,它都会自动替换为当前页码。
现在Infinite-Scroll在博客的每个页面上正确加载,这在想要创建“加载更多帖子”按钮时特别有用,这使用户可以在常规(分页)导航和无限滚动之间进行选择。 / p>