Jquery 无限滚动插件使用自定义查询修改路径
我将无限滚动插件()与jQuery一起使用,我想知道当用户向下滚动页面以查看更多项目时,是否可以使用自定义查询参数修改路径 是否有方法访问路径并修改其中一个查询参数。 它第一次点击路径ok,返回第一组项目,然后点击下一页,1,2,3 ok,但使用我第一次使用的相同查询参数,只更新页码 我想在点击第3页或第4页时修改其中一个参数,如下所示:Jquery 无限滚动插件使用自定义查询修改路径,jquery,scroll,jquery-isotope,infinite-scroll,infinite,Jquery,Scroll,Jquery Isotope,Infinite Scroll,Infinite,我将无限滚动插件()与jQuery一起使用,我想知道当用户向下滚动页面以查看更多项目时,是否可以使用自定义查询参数修改路径 是否有方法访问路径并修改其中一个查询参数。 它第一次点击路径ok,返回第一组项目,然后点击下一页,1,2,3 ok,但使用我第一次使用的相同查询参数,只更新页码 我想在点击第3页或第4页时修改其中一个参数,如下所示: var customPath = path + "?type=items&category=clothes&pageNumber="; $(
var customPath = path + "?type=items&category=clothes&pageNumber=";
$('#filters a').click(function () {
$.infinitescroll.prototype.pageType = "&type=products" ;
$.infinitescroll.prototype.pageType = "&category=clothes";
return false;
});
我是不是走错了路
这是我的密码:
$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));
});
$container.infinitescroll({
导航选择器:'#页面导航',//分页导航的选择器
下一个选择器:“#page_nav a”,//下一个链接(到第2页)的选择器
itemSelector:'.element',//将检索的所有项目的选择器
装载:{
FinishedMg:“没有更多要加载的类别。”,
msgText:“正在加载下一组类别…”,
img:'http://i.imgur.com/qkKy8.gif'
},
路径解析:函数(路径,下一页){
var customPath=path+“?type=items&category=all&pageNumber=”;
路径=[customPath',#contaner'];
返回路径;
}
},
//调用同位素作为回调
函数(新元素){
$container.同位素('追加',$(新元素));
});
好的,所以我不得不做了一点修改,但由于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的页面,您可以执行如下操作:
var customPath = path + "?type=items&category=clothes&pageNumber=";
$('#filters a').click(function () {
$.infinitescroll.prototype.pageType = "&type=products" ;
$.infinitescroll.prototype.pageType = "&category=clothes";
return false;
});
这将使用自定义查询更新下一页的查询参数
希望这会对其他人有所帮助。您的customPath是非法的js语法。你不能把“鞋”放在那样的双引号里。只要去掉双引号就可以了。(“&category=shoes&”)我认为您提供的信息不够我理解。你是说当用户到达第3页时,你想把类别从“衣服”改为“鞋子”吗?这是否意味着你想留在服装的第三页而不是鞋子的第三页?你到底想做什么?很抱歉,这是我这边的一个错误,我删除了引号。最初,当用户看到页面时,页面上有30个不同类别的项目。现在,页面上有一个按钮,当用户单击它时,项目被过滤,只显示类别衣服的项目。现在,当用户向下滚动时,我需要获取接下来的30个项目,但我需要修改路径查询,这样我将只获取类别衣服的项目,而不是获取所有项目。我对无限滚动的了解不够,无法回答,但这里有一个带答案的问题可能会有所帮助。谢谢,我能稍微修改一下插件,让它做我想要的。