var totalProperty = $!{totalProperty};
var limit = ${limit};
var start = ${start};
mui.init({
pullRefresh: {
container: '#pullrefresh',
down: {
callback: pulldownRefresh
},
up: {
height:100,
auto:true,
contentnomore:'没有更多数据了',//可选,请求完毕若没有更多数据时显示的提醒内容;
contentrefresh: '正在加载...',
callback: pullupRefresh
}
}
});
/**
* 下拉刷新具体业务实现
*/
function pulldownRefresh() {
start= limit;
console.log(start);
setTimeout(function() {
mui.ajax('${basePath}zxNoHandleList.shtml',{
data:{
reqAjax:'reqAjax',
start:0
},
type:'post',//HTTP请求类型
timeout:10000,//超时时间设置为10秒;
success:function(data){
$(".lists").html(data);
mui('#pullrefresh').pullRefresh().endPulldownToRefresh(); //refresh completed
mui('#pullrefresh').pullRefresh().refresh(true);
},
error:function(xhr,type,errorThrown){
//异常处理;
console.log(type);
}
});
}, 1000);
}
/**
* 上拉加载具体业务实现
*/
function pullupRefresh() {
start = start+limit;
setTimeout(function() {
mui.ajax('${basePath}zxNoHandleList.shtml',{
data:{
reqAjax:'reqAjax',
start:start,
},
type:'post',//HTTP请求类型
timeout:10000,//超时时间设置为10秒;
success:function(data){
console.log(start);
$(".lists").append(data);
mui('#pullrefresh').pullRefresh().endPullupToRefresh(start>=totalProperty);
},
error:function(xhr,type,errorThrown){
//异常处理;
console.log(type);
}
});
}, 1000);
}
如代码,我的分页条件,当前开始条数大于等于总条数时我停止下拉加载mui('#pullrefresh').pullRefresh().endPullupToRefresh(start>=totalProperty);
空间会显示没有更多数据
当我下拉刷新时问题就来了
我的下拉刷新时ajax请求,把开始条数改为0条,如果这时候我不
mui('#pullrefresh').pullRefresh().refresh(true);
那么下面就会一直显示没有更多数据,无法重新开始上拉加载
但是如果我
mui('#pullrefresh').pullRefresh().refresh(true);
这串代码又会给我自动加载一次下一页数据,
问题所在就是,我其实只有一页数据,即一条数据,当我在下拉刷新加上重置上拉加载时( mui('#pullrefresh').pullRefresh().refresh(true);)会给我重复请求一次。结果页面就会出现两条一样的数据,有大神知道怎么解决吗?
5 个回复
s***@126.com (作者)
我刚刚又调试了一下,发现了,问题所在,即
重置上拉加载时,并不能实时知道我的分页条件,即无论如何,只要使用重置
哪怕我只有一页并没有下一页,但页面也一定能重新上拉加载,且会自动加载一次下一页。
但是我的上拉加载条件是当前条数小于等于总条数,在这个方法里面已经写了
若使用重置,就无法判断我的分页是否有数据
s***@126.com (作者)
再补充一下我的业务逻辑,我想做的就是,当我上拉加载到最后没有数据后,我下拉刷新,可以刷新整个页面状态,页面数据从第一页开始,继续可以上拉加载,但条件是下拉刷新不能刷新页面,必须AJAX 请求从第一页开始。
石软
这个问题一致没解决,一年了都快,不知道HB的人天天在干嘛,还号称H5领导者。@DCloud
1***@qq.com - 90后
每次下拉刷新后,都把上拉加载给重置掉,并且把页数设置为第一页
4***@qq.com
你每次下拉刷新后加一行
setTimeout(function() {
mui('#pullrefresh').pullRefresh().refresh(true);
}, 800);//重置下拉加载
就解决这个问题了