最近多处地方用到这块的功能,顺便总结下。
1
<!--下拉刷新容器-->
<div id="pullrefresh" class="mui-content mui-scroll-wrapper">
<div class="mui-scroll">
<!--数据列表-->
<ul class="mui-table-view mui-table-view-chevron">
</ul>
</div>
</div>
2
//初始化
mui.init({
pullRefresh: {
container: "#refreshContainer", //下拉刷新容器标识
down: {
auto: false,
contentdown: "下拉可以刷新",
contentover: "释放立即刷新",
contentrefresh: "正在刷新...",
callback: pullDownFresh
},
up: {
height: 50, //可选.默认50.触发上拉加载拖动距离
auto: false,
contentover: "释放立即加载",
contentrefresh: "正在加载...",
contentnomore:'没有更多数据了',
callback: pullupFresh
}
}
});
3
// 上拉加载
function pullupFresh() {
setTimeout(function() {
var lastId = document.getElementById("lastId").value;
if(isPullupOver) {//判断是否拉完,也可以放到endPullupToRefresh(表达式)进行判断
mui('#refreshContainer').pullRefresh().endPullupToRefresh(true) //结束上拉加载true结束false不结束
} else {
mui('#refreshContainer').pullRefresh().endPullupToRefresh(false) //结束上拉加载true结束false不结束
queryList("0",lastId);//后台通过最后一条数据查下边的
}
}, 1500);
}
// 下拉刷新
function pullDownFresh() {
var firstId = document.getElementById("firstId").value;
setTimeout(function()
queryList("1",firstId);//后台通过第一条数据查上边的
mui('#refreshContainer').pullRefresh().endPulldownToRefresh();
}, 1500);
}
当然ajax里边还有挺多的逻辑,下边我一一阐述下
(1)初始请求数据为空时,不能直接判断data.length.应该加上上拉下拉的次数,否则当上拉或则下拉的时后没数据时,直接展示暂无数据了。(++time == 1 && da.length == 0)//初始进来有没有数据
)