Javascript jQuery如何在递归函数中按值递增变量
我有一个在document.ready中调用的JS函数。目的是当它滚动到底部窗口时,它将从JSON API加载更多内容 API具有参数偏移和限制。偏移量控制要查看的结果子集。例如,20-40将是offset=20,限制控制一次可以查看的数量 我想我应该使用一个递归函数来实现这一点,该函数在用户每次进入窗口底部时都会使用window.scroll调用自己。一旦它们到达底部,它会将偏移量每次增加20,然后再次运行该函数 问题:我似乎无法让它将变量增加20以使其工作。想法Javascript jQuery如何在递归函数中按值递增变量,javascript,jquery,json,variables,arguments,Javascript,Jquery,Json,Variables,Arguments,我有一个在document.ready中调用的JS函数。目的是当它滚动到底部窗口时,它将从JSON API加载更多内容 API具有参数偏移和限制。偏移量控制要查看的结果子集。例如,20-40将是offset=20,限制控制一次可以查看的数量 我想我应该使用一个递归函数来实现这一点,该函数在用户每次进入窗口底部时都会使用window.scroll调用自己。一旦它们到达底部,它会将偏移量每次增加20,然后再次运行该函数 问题:我似乎无法让它将变量增加20以使其工作。想法 function getDa
function getData(offset) {
var jsonCallback = "&jsoncallback=?";
//var offset = 20;
//var offset += 20;
var limit = 20;
var characterURL = "http://api.example.com/character&byId=" + characterID + "&offset=" + offset + "&limit=" + limit;
$.getJSON(characterURL + jsonCallback, function(data) {
for (i=0; i < (data.data.results).length; i++) {
var $characterUl = $("<ul>");
$characterUl.appendTo("#characterComics");
$("<li>").text(data.data.results[i].title).appendTo($characterUl);
$("<li>").text(data.data.results[i].id).appendTo($characterUl);
$("<li>").text(data.data.results[i].release_date).appendTo($characterUl);
if (data.data.results[i].release_date > 0) {
$characterLi.text(data.data.results[i].issue_number).appendTo($characterUl);
}
}
$(window).scroll(function() {
if($(window).scrollTop() + $(window).height() > $(document).height() - 10) {
while ((data.data.results).length === offset || (data.data.results).length > offset) {
offset = offset+20;
$("<div>").text(offset).appendTo("body");
getComics(offset);
}
}
});
});
}
$(document).ready(function() {
var $characterComics = $("<div>", {id : "characterComics"});
$characterComics.appendTo("body");
getData(0);
});
函数getData(偏移量){
var jsonCallback=“&jsonCallback=?”;
//var偏移=20;
//var偏移量+=20;
风险价值限额=20;
变量characterURL=”http://api.example.com/character&byId=“+characterID+”&offset=“+offset+”&limit=“+limit;
$.getJSON(characterURL+jsonCallback,函数(数据){
对于(i=0;i<(data.data.results).长度;i++){
变量$characterUl=$(“- ”);
$characterUl.appendTo(“#characterComics”);
$(“
- ”).text(data.data.results[i].title).appendTo($characterUl); $(“
- ”).text(data.data.results[i].id).appendTo($characterUl); $(“
- ”).text(data.data.results[i].发布日期).appendTo($characterUl);
if(data.data.results[i].发布日期>0){
$characterLi.text(data.data.results[i].发行号).appendTo($characterUl);
}
}
$(窗口)。滚动(函数(){
if($(窗口).scrollTop()+$(窗口).height()>$(文档).height()-10){
while((data.data.results).length==offset | |(data.data.results).length>offset){
偏移量=偏移量+20;
$(“”).文本(偏移量).appendTo(“正文”);
漫画(胶版);
}
}
});
});
}
$(文档).ready(函数(){
var$characterComics=$(“”,{id:“characterComics”});
$characterComics.appendTo(“body”);
getData(0);
});
已更新
请将此作为伪代码阅读
函数getData(偏移量){ var jsonCallback=“&jsonCallback=?”, characterURL=”http://api.example.com/character&byId=“+characterID+”&offset=“+offset+”&limit=“+limit; $.getJSON(characterURL+jsonCallback,函数(数据){ 对于(i=0;i<(data.data.results).长度;i++){ var$listItem=$(“function getData(offset) { var jsonCallback = "&jsoncallback=?", characterURL = "http://api.example.com/character&byId=" + characterID + "&offset=" + offset + "&limit=" + limit; $.getJSON(characterURL + jsonCallback, function(data) { for (i=0; i < (data.data.results).length; i++) { var $listItem = $("<li>"); listItem.append("<span>"+data.data.results[i].title+"</span>"); listItem.append("<span>"+data.data.results[i].id+"</span>"); listItem.append("<span>"+data.data.results[i].release_date+"</span>"); if (data.data.results[i].release_date > 0) { listItem.append("<span>"+data.data.results[i].issue_number+"</span>"); } listItem.appendTo($characterUl); itemsLoaded++; } }); } $(document).ready(function() { var $characterComics = $("<div>", {id : "characterComics"}), $characterUl = $("<ul>"), offset = 0, itemsLoaded = 0; limit = 20; $characterComics.appendTo("body"); $characterUl.appendTo($characterComics); $(window).scroll(function() { if($(window).scrollTop() + $(window).height() > $(document).height() - 10) { if ("check here if you reached your offsets") { offset = offset+20; getData(offset); } } }); // get your first set of data getData(0); });
- ”); listItem.append(“+data.data.results[i].title+”); 追加(“+data.data.results[i].id+”); listItem.append(“+data.data.results[i].release_date+”); if(data.data.results[i].发布日期>0){ listItem.append(“+data.data.results[i].发行号+”); } listItem.appendTo($characterUl); itemsLoaded++; } }); } $(文档).ready(函数(){ var$characterComics=$(“”,{id:“characterComics”}), $characterUl=$(“
- ”),
偏移量=0,
itemsLoaded=0;
限值=20;
$characterComics.appendTo(“body”);
$characterUl.appendTo($characterComics);
$(窗口)。滚动(函数(){
if($(窗口).scrollTop()+$(窗口).height()>$(文档).height()-10){
如果(“如果达到偏移量,请检查此处”){
偏移量=偏移量+20;
获取数据(偏移量);
}
}
});
//获取第一组数据
getData(0);
});
已更新
请将此作为伪代码阅读
- ”);
listItem.append(“+data.data.results[i].title+”);
追加(“+data.data.results[i].id+”);
listItem.append(“+data.data.results[i].release_date+”);
if(data.data.results[i].发布日期>0){
listItem.append(“+data.data.results[i].发行号+”);
}
listItem.appendTo($characterUl);
itemsLoaded++;
}
});
}
$(文档).ready(函数(){
var$characterComics=$(“”,{id:“characterComics”}),
$characterUl=$(“
- ”),
偏移量=0,
itemsLoaded=0;
限值=20;
$characterComics.appendTo(“body”);
$characterUl.appendTo($characterComics);
$(窗口)。滚动(函数(){
if($(窗口).scrollTop()+$(窗口).height()>$(文档).height()-10){
如果(“如果达到偏移量,请检查此处”){
偏移量=偏移量+20;
获取数据(偏移量);
}
}
});
//获取第一组数据
getData(0);
});
很有趣。在这种情况下,它如何知道何时停止额外的回调,因为我要检查数据长度是否等于或大于20,然后继续,如果小于20,则停止?很有趣。在这种情况下,它如何知道何时停止额外的回调,因为我要检查数据长度是否等于或大于20,然后继续,如果小于20,则停止?
函数getData(偏移量){ var jsonCallback=“&jsonCallback=?”, characterURL=”http://api.example.com/character&byId=“+characterID+”&offset=“+offset+”&limit=“+limit; $.getJSON(characterURL+jsonCallback,函数(数据){ 对于(i=0;i<(data.data.results).长度;i++){ var$listItem=$(“function getData(offset) { var jsonCallback = "&jsoncallback=?", characterURL = "http://api.example.com/character&byId=" + characterID + "&offset=" + offset + "&limit=" + limit; $.getJSON(characterURL + jsonCallback, function(data) { for (i=0; i < (data.data.results).length; i++) { var $listItem = $("<li>"); listItem.append("<span>"+data.data.results[i].title+"</span>"); listItem.append("<span>"+data.data.results[i].id+"</span>"); listItem.append("<span>"+data.data.results[i].release_date+"</span>"); if (data.data.results[i].release_date > 0) { listItem.append("<span>"+data.data.results[i].issue_number+"</span>"); } listItem.appendTo($characterUl); itemsLoaded++; } }); } $(document).ready(function() { var $characterComics = $("<div>", {id : "characterComics"}), $characterUl = $("<ul>"), offset = 0, itemsLoaded = 0; limit = 20; $characterComics.appendTo("body"); $characterUl.appendTo($characterComics); $(window).scroll(function() { if($(window).scrollTop() + $(window).height() > $(document).height() - 10) { if ("check here if you reached your offsets") { offset = offset+20; getData(offset); } } }); // get your first set of data getData(0); });
- ”); listItem.append(“+data.data.results[i].title+”); 追加(“+data.data.results[i].id+”); listItem.append(“+data.data.results[i].release_date+”); if(data.data.results[i].发布日期>0){ listItem.append(“+data.data.results[i].发行号+”); } listItem.appendTo($characterUl); itemsLoaded++; } }); } $(文档).ready(函数(){ var$characterComics=$(“”,{id:“characterComics”}), $characterUl=$(“