使用前记得先引入:weui.min.css、jquery-weui.min.css、jquery-weui.min.jscss
第一步:将下面的代码放在body结束标签上面(这个位置能够本身按需求放)html
<div class="weui-loadmore" id="loading"> <i class="weui-loading"></i> <span class="weui-loadmore__tips">正在加载</span> </div>
我这边是给元素多加了个id 由于这个元素默认是显示的,因此一开始咱们须要先隐藏,上拉加载的时候在显示这个元素。jquery
第二步:绑定上拉事件ui
var loading = false; //状态标记 这个变量主要是用来控制触发次数,官网也有说明,事件可能会触发屡次 $(document.body).infinite().on("infinite", function() { $("#loading").css("display","block");//显示 加载中图标 if(loading) return; loading = true; if(page<=countPage){//若是当前页小于总页面 getbalancelist(); }else{ $(document.body).destroyInfinite();//到最后一页时,销毁它 $("#loading>i").css("display","none"); $("#loading>span").html("到底啦~").css("color","#BDBDBD"); } });
第三步:加载数据url
var countPage=1;//总页数 var page=1;//当前页 var pageSize=8;//每页显示几条 //获取数据 function getbalancelist(){ init.Ajax("GET", "url", {page:page,num:pageSize}, function (res) { //这里计算出总页数。。通常是后台给的 countPage=Math.ceil((res.data.totalCount)/pageSize); //处理数据部分 ....... loading = false;//会屡次触发,因此 须要请求完成数据 才能继续触发 $("#loading").css("display","none");//数据加载完隐藏加载提示 }) page++; }
总结:使用这个组件遇到的坑,主要就是,你上拉一下,会屡次触发事件(会同时执行屡次加载数据的方法),因此须要经过loading这个变量来控制 当上一次触发的事件执行结束后,才能执行加载数据的方法。官网地址:http://jqweui.com/extends#infinitespa