作者flirmnave (焰离雨星)
看板Ajax
标题[问题] scrollPagination Plugin 的问题
时间Mon Sep 30 15:39:26 2013
我想要做出可以滚到网页底部就可以载入更多资料的页面
於是找了 jQuery ScrollPagination 来做
http://www.jqueryrain./?gG3nSRD
已经把它改成可以用 PHP 传回来的 JSON 资料去显示了
js档(自己改过的)
if (mayLoadContent){
if (opts.beforeLoad != null){
opts.beforeLoad();
}
$(obj).children().attr('rel','loaded');
$.ajax({
type:'GET',
url:opts.contentPage,
data: {
'id': "society",
'page': i,
},
dataType:'json',
success: function(json){
var NumOfData = json.length;
for (var i = 0; i < NumOfData; i++) {
$(obj).append("<li style=" + "opacity:0;-moz-opacity: 0;filter:
alpha(opacity=0);>" + "<p>" + json[i]['title'] + "</p></li>");
}
var objectsRendered = $(obj).children('[rel!=loaded]');
if
(opts.afterLoad != null){
opts.afterLoad(objectsRendered);
}
});
i++; //完成後i+1,下次触发时,从第二页开始
}},
PHP的部分
$id = $_GET['id'];
$page = $_GET['page'];
$start = $page*10;
$db->query("SELECT title FROM $id LIMIT $start,10");
id是要从哪个表单拿资料,start则是拿第几页的
上面是可以动的
但却有几个问题...
-----
他在提供给使用者设定那里有一个
if ($('#content').children().size() > 100)
预先设定成到100项的时候就停止
但如果资料没有那麽多的话 他最面就会卡在
Wait a moment... it's loading!
一直找不到方法让它发现没有更多资料时停止......
-----
另一个则是 如果拉太快的话 中间会出现空白
下一页的会先跑出来 而上一页的还在载入
不知道该怎麽让它变成 等上面的载入完毕且在页面底端时才继续载入......
-----
希望各位可以提供方向解决 自己找却一直找不到方法...
麻烦各位了
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.242.48.48
我刚刚试出来了
success: function(json){
if(json){ //先判断还有没有资料
....
}
else{ //没有的话就停止并提示无资料
$('#loading').fadeOut();
$('
#nomoreresults').fadeIn();
$('#content').stopScrollPagination();
}
},
然後把前面的 if ($('#content').children().size() > 100) 去掉
这样应该就可以了
滚太快中间会有空白还是无解....
※ 编辑: flirmnave 来自: 111.242.48.48 (09/30 17:44)
※ 编辑: flirmnave 来自: 111.242.48.48 (09/30 17:46)
※ 编辑: flirmnave 来自: 111.242.48.48 (09/30 17:48)
1F:→ abgne:设定个 bool 变数, load 之前先判断是否为 true 10/04 00:00
2F:→ abgne:是的话才 load, 开始 load 时要马上设为 false 10/04 00:01