jQuery ScrollPagination 我使用这个的滚动条移动一次就会自动读取三次数据,我在输出程序页面直接输出一个1,滚动一次就输出3个1.还有这个怎么判断页码呢?就是当前读取的数据是第几页的数据,怎么输出到后台输出程序页面呢?
读取页面jquyery代码:
$(function(){
$('#content').scrollPagination({
'contentPage': 'suchu.asp',
'contentData': {},
'scrollTarget': $(window),
'heightOffset': 10,
'beforeLoad': function(){
$('#loading').fadeIn();
},
'afterLoad': function(elementsLoaded){
$('#loading').fadeOut();
var i = 0;
$(elementsLoaded).fadeInWithDelay();
if ($('#content').children().size() > 30){
$('#nomoreresults').fadeIn();
$('#content').stopScrollPagination();
}
}
});
// code for fade in element by element
$.fn.fadeInWithDelay = function(){
var delay = 0;
return this.each(function(){
$(this).delay(delay).animate({opacity:1}, 200);
delay += 100;
});
};
});
楼主,你解决问题了吗?求答案
楼主,怎么个情况?求解啊。。。
我也遇到了这个问题,研究了他的实现,每次scroll动作都会触发loadContent去校验高度差,当高度差超出设定值的时候就会发送ajax请求去加载新内容,问题就出现了,在内容还没加载出来的时候,再scroll依旧会触发loadContent,而且依然判断成功去发送ajax请求,就导致了这种重复的请求。
loadContent的时候加个lock,判断lock=true的时候就不触发loadContent了,ajax返回后再把lock=false了
您好。能把修改的后的js贴出来下吗。
@猪头猪脑:
<input type="hidden" value="-2" id="blocked_page"/>
<script type="text/javascript">
window.onload=function(){
App.ajax_get_asks("<%=@ask.id%>");
$("#toTop").scrollToTop();
$('#answer_list').scrollPagination({
'contentPage': "/asks/<%=@ask.id%>/ajax_get_answers?filter=<%=(params[:filter].to_s=='new')?'new':'vote'%>",
'contentData': {},
'scrollTarget': $(window),
'heightOffset': 300,
'beforeLoad': function(){
if(parseInt($('#blocked_page').val()) > 0) {
return false;
}else{
$('#blocked_page').val(parseInt($('#blocked_page').val())*-1);
$('#loading').fadeIn();
return true;
}
},
'afterLoad': function(){
$('#loading').fadeOut();
if ($('#answer_list').children().size() >= <%=@ask.answers_count%>){
$('#answer_list').stopScrollPagination();
}
$('#blocked_page').val((parseInt($('#blocked_page').val())+1)*-1);
}
});
}
</script>
我这个略微复杂些,其实就是隐藏域true or false。在before里面判断true就执行,然后改成false;false就不执行return。在after里面执行完了改回true。我这里$('#blocked_page').val()好像是做页码用的,然后根据正负判断是否处理
我也遇到这样的问题,希望有高手可以贴出解决方法