先是显示10个,然后点击加载更多,再显示10个·····
一、思路
一般使用ajax加载的话,一下会加载全部数据,这次要控制量的加载,那就要用到判断,判断加载到10个停止加载,后面通过点击按钮,在接着加载完的10个后面继续加载。
要想控制只加载10个怎么办捏。不能通过遍历的 i 来判断 10个,因为加载完10个后后面还要加载,这样下一个10个就不好判断了,所以需要定义一个新的变量,来计算加载的个数,
可以这样写:
var ci = 0;for(var i = 0; i < data.list.length; i++){ ci++; if(ci> 10){ break; }}然后需要再加载10个,再调用这个方法,所以这个方法需要声明一个函数名,下次需要用的时候在调用,如果需要传参也可以。现在还有个问题,第一次进来加载完10个后,需要再加载前10个数据接着后面的json数据,怎么办呢???
<dl id="incomeNum"> <dt><em></em>每日分配收益</dt></dl><div class="jiaZai_more">点击查看更多</div>css:
function nwalletProfit(num, cNum){$.ajax({type: "post",async: true,url: url,dataType: "json",success: function (data) {if (data.list.length > 0){var i = num;var ci= 0;var x = parseInt((data.profit_list.length)/10);//x为每10个一组的组数if(cNum >= x){$(".jiaZai_more").hide(); //当点击更多的次数 ≥ 组数时,隐藏按钮}for(; i < data.profit_list.length; i++){var htmltxt = "";ci++; var date = data.profit_list[i].date;var year = date.substring(0, 4);var month = date.substring(4, 6);var day = date.substring(6);date = year+"年"+month+"月"+day+"日";htmltxt += "<dd>";htmltxt += "<h5 class="date">"+date+"</h5>";htmltxt += "<p class="income">"+data.list[i].profit+"%</p>";if(ci> 10){break;}$("#incomeNum").append(htmltxt);}}},error: function (e, d, c) {console.log(d)}});}nwalletProfit(0);var clickNum = 0; //点击的次数$(".jiaZai_more").on("click", function(event) {event.preventDefault();clickNum++;var iNum = 10*clickNum; //每次点击开始加载的第一个索引值nwalletProfit(iNum, clickNum);});以上所述是小编给大家介绍的Ajax点击不断加载数据列表,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!