我正在使用jQuery ScrollExtend 插件来尝试向网站添加无限滚动,该插件的语法如下:
jQuery('#actualResults').scrollExtend({
'target' : '#actualResults',
'url' : 'some url',
'newElementClass' : 'ajaxArticles'
});
可选地,此插件可以通过添加onSuccess
到选项数组来进行回调。
jQuery('#actualResults').scrollExtend({
'target' : '#actualResults',
'url' : 'some url',
'newElementClass' : 'ajaxArticles',
‘onSuccess’ : 'some callback'
});
因此,除了 URL 之外,这些设置都是需要的,但是我在设置 URL 时遇到了问题。
本质上,URL 需要采用以下格式:
callSearch.php?scope=web&q=the+query&page=1&offset=51
获取组成 URL 的信息并不难。
var offset = parseInt($(document).getUrlParam("offset"))
if (isNaN(offset))
offset = 51;
else
offset += 51;
var query = $(document).getUrlParam("q");
var scope = $(document).getUrlParam(”scope”);
var url = 'callSearch.php?scope=' + scope + '&q=' + query + '&offset=' + offset;
因此,这使得设置初始 URL 变得很容易:
jQuery('#actualResults').scrollExtend({
'target' : '#actualResults',
'url' : url,
'newElementClass' : 'ajaxArticles'
});
但是最后一个阶段也是问题所在,我现在如何url
在每次运行后更新它,以便将 51 添加到偏移量上?例如,初始 URL 将显示为:
callSearch.php?scope=web&q=the+query&page=1&offset=51
第二个:
callSearch.php?scope=web&q=the+query&page=1&offset=102
广告等等。我的假设是我需要使用回调来做到这一点?任何人都可以帮助我指出正确的方向,以便我可以让它发挥作用吗?
进步
我现在开始着手处理这个问题。我现在有更新偏移量和 url 变量的回调函数,但插件似乎没有为这些获取新值。我的完整 JavaScript 现在如下:
jQuery(document).ready(
function() {
var offset = parseInt($(document).getUrlParam("offset"))
if (isNaN(offset))
offset = 51;
else
offset += 51;
var query = $(document).getUrlParam("q");
var scope = $(document).getUrlParam("scope");
var url = 'callSearch.php?scope=' + scope + '&q=' + query + '&offset=' + offset;
jQuery('#actualResults').scrollExtend({
'target' : '#actualResults',
'url' : url,
'newElementClass' : 'ajaxArticles',
'onSuccess' : function() {
offset += 51;
url = 'callSearch.php?scope=' + scope + '&q=' + query + '&offset=' + offset;
runLog();
}
});
function runLog() {
console.log(offset);
console.log(url);
}
}
);
所以,我想现在的问题是如何让插件看到这些更新的变量?
这个 stackoverflow 线程似乎与我当前的问题有关,我明天会回顾这个 - 但现在是我回家的时候了。