static

refresh.js 3.0KB

    require(["ipuUI", "jquery"], function (ipuUI, $) { $(function () { var totalPage = 3; // 总页数 var nowPage = 1; // 当前显示第几页,因为默认有一些数据了,所以为1 var listObj = $("#refresh ul"); var contentHtml = $("li:lt(10)", listObj).clone(); // 测试用,复制5条数据 // 移除初始的数据,并初始nowPage=0; listObj.empty(); nowPage = 0; var countNo = 0; // 重要计数器,以此来判断不需要 // 初始化下拉刷新 var myRefresh = ipuUI.refresh("#refresh", { bottomLoadFun: function () { // 加载更多 console.log('加载更多'); // 手势上拉,内容下滚动动 addData(); }, topLoadFun: function () { // 刷新 console.log('刷新数据'); // 手势下拉,内容上滚动 refreshData(); } }); // 搜索按钮 $("#query-btn").click(function () { // 停止加载更多和刷新功能,以及当前的加载更多和刷新状态 myRefresh.enableBottom(false); if (myRefresh.bottomLoading) { myRefresh.endBottomLoading(); } myRefresh.enableTop(false); if (myRefresh.topLoading) { myRefresh.endTopLoading(); } nowPage = 0; listObj.empty(); myRefresh.enableBottom(true); myRefresh.refresh(); // 刷新会自动检查是否需要触发加载更多功能 }); // 查询数据 function addData(refresh) {// 0搜索,1刷新,2加载更多 $('.no-result-msg').hide(); nowPage++; var localCountNo = ++countNo; // 执行查询前,保留当前计数器,当查询返回时进行检查是否最新查询,不是则抛弃查询结果 setTimeout(function () { // 模拟延时加载 if (localCountNo == countNo) { // 检查是否最新查询返回数据,不是则抛弃查询结果 // 此处先更新togalPage等信息 myRefresh.enableTop(totalPage != 0); // 假设totalPage为0时表示没数据,此时停用刷新功能,也可不停用,强行刷新 myRefresh.enableBottom(nowPage < totalPage); // enable应该总是先于endBottom/TopLoading方法执行 if (totalPage == 0) { $('.no-result-msg').show(); } else { if (refresh) { // 顶部刷新,刷新也可能已经没有数据了,待处理 listObj.empty(); // 清空已有内容 contentHtml.clone().appendTo(listObj); myRefresh.endTopLoading(); //最后调用 } else { // 底部加载更多,或查询 contentHtml.clone().appendTo(listObj); myRefresh.endBottomLoading(); //最后调用 } } } }, 3000); } // 刷新 function refreshData() { // 刷新数据 nowPage = 0; // 底部加载时,停用底部加载功能和底部加载 myRefresh.enableBottom(false); if (myRefresh.bottomLoading) { myRefresh.endBottomLoading(); } addData(true); } }); });