5

我正在使用带有 jQ​​uery isotope 的无限滚动插件 ( infinite-scroll ),并且想知道当用户向下滚动页面以查看更多项目时,是否可以使用自定义查询参数修改路径。

有没有办法访问路径并修改其中一个查询参数。它第一次到达路径 ok 返回第一组项目,然后它到达下一页 1,2 3 ok 但使用我第一次使用的相同查询参数只更新页码。

我想在点击第 3 页或第 4 页时修改其中一个参数,如下所示:

var customPath = path + "?type=items&category=clothes&pageNumber=";

我是以错误的方式接近这个吗?

这是我的代码:

$container.infinitescroll({
    navSelector: '#page_nav', // selector for the paged navigation 
    nextSelector: '#page_nav a', // selector for the NEXT link (to page 2)
    itemSelector: '.element', // selector for all items you'll retrieve
    loading: {
        finishedMsg: 'No more categories to load.',
        msgText: "<em>Loading the next set of categories...</em>",
        img: 'http://i.imgur.com/qkKy8.gif'
    },
    pathParse: function (path, nextPage) {
        var customPath = path + "?type=items&category=all&pageNumber=";
        path = [customPath, '#contaner'];
        return path;
    }
},
// call Isotope as a callback
function (newElements) {
    $container.isotope('appended', $(newElements));
});
4

1 回答 1

7

好的,所以我不得不做一些小技巧,但由于 Rich 向我指出了相关问题,我让它满足了我的需要。

我在这里为 jquery.infinitescroll.js 原型添加了一些额外的属性:

//line 67
 $.infinitescroll.prototype = {
       //My custom parameters
        pageType: "&type=items",
        categoryParam: "&category=shoes",
        /*  
            ----------------------------
            Private methods
            ----------------------------
            */

然后在函数内部调用:

retrieve: function infscr_retrieve(pageNum) {}

有一个变量:

desturl = path.join(opts.state.currPage)

将其更改为

desturl = path.join(opts.state.currPage + $.infinitescroll.prototype.pageType + $.infinitescroll.prototype.categoryParam);

这将在 desturl 的末尾添加您的其他查询参数。

然后从你拥有 JavaScript 的页面中,你可以执行以下操作:

$('#filters a').click(function () {
    $.infinitescroll.prototype.pageType = "&type=products" ;                  
    $.infinitescroll.prototype.pageType = "&category=clothes";                           
     return false;
});

这将使用您的自定义查询更新下一页的查询参数。

希望这会对某人有所帮助。

于 2012-09-17T22:11:21.747 回答