var page=1;
var setfixed=function(){
var t=$(document).scrolltop(); //卷上去的高度
var wh=$(window).height();//窗口的高度
var h=$(document).height();//网页窗口的高度
var data={};
var cateid=$(#cateid).val();
if(page>0){
$(#load).show();
//a=document.body.scrollheight;
//b=$(window).scrolltop();
//c=$(window).height();
//if(c==(a-b) || page ==1){
if(t+wh>=h-50){
$.post(app.config.site+/game/getgame,{cateid:cateid,page:page},function(data){
$(#load).hide();
if(data.status==1){
//e.preventdefault();
$(.list_class).html($(.list_class).html()+data.info);
//$(.list_class).html(data.info);//覆盖页码
page++;
}else{
page=0;
}
},'json');
}
}
};
setfixed(page);
window.onscroll=setfixed;
});
});
回复讨论(解决方案) 设定一个 isajaxsend=false 的变量(只用于判断是否有滚动分页请求正在执行也可以)
var isajaxsend=false;var page=1;var setfixed=function(){ var t=$(document).scrolltop(); //卷上去的高度 var wh=$(window).height();//窗口的高度 var h=$(document).height();//网页窗口的高度 var data={}; var cateid=$(#cateid).val(); if(page>0){ $(#load).show(); //a=document.body.scrollheight; //b=$(window).scrolltop(); //c=$(window).height(); //if(c==(a-b) || page ==1){ if(t+wh>=h-50){ if (isajaxsend) {//判断是否有滚动分页正在请求,若有则不请求 return false; } isajaxsend = true;//标识正在请求分页内容 $.post(app.config.site+/game/getgame,{cateid:cateid,page:page},function(data){ $(#load).hide(); if(data.status==1){ //e.preventdefault(); $(.list_class).html($(.list_class).html()+data.info); //$(.list_class).html(data.info);//覆盖页码 page++; }else{ page=0; } isajaxsend = false;//不论成功与否,都标识为没有请求 },'json'); } }};
你每次都请求的是整页 $.post(app.config.site+/game/getgame,{cateid:cateid,page:page}......
但却是追加显示 $(.list_class).html($(.list_class).html()+data.info);
@xuzuning :$.post(app.config.site+/game/getgame,{cateid:cateid,page:page}..,是将cateid和page提交到php文件里,php文件接收值,查询数据,通过ajax返回, $(.list_class).html($(.list_class).html()+data.info); 接收返回的数据。谢谢你
@jam00 : 谢谢你,数据不在重复了,你能跟我说一下,为什么这样写吗?一开始的时候,我也用true和false这样写的,但是不行呢
