无限下拉
来源:9-6 店铺列表页前端的开发上
Joker4411416
2019-04-18
翔仔哥,这个地方不知道是我搞错了还是一个之前的一个没有更改的漏洞,因为我看您的代码里跟之前的不一样
if(total >= maxItems){
//加载完成,则注销无线加载事件,以防不必要的加载
.detachInfiniteScroll(.detachInfiniteScroll(.detachInfiniteScroll((’.infinite-scroll’));
//删除加载提示符
$(’.infinite-scroll-preloader’).remove();
}
在上面那段代码中,如果当前查询条件下,total>=maxItems,就注销无限加载事件,那么下次这个无限加载就失效了,比如我先加载了奶茶类别,total>=maxItems之后,无限加载事件就会被注销,那么我再查询其他类别就只能查询到每页的数量,不能继续下拉,因为无限加载事件已经在本次session会话中已经被注销了,或则是不是您的代码里有哪一个地方判断后又开启了无限加载,我回头大致看了下也没看见,下载的您的源码里面是这样写的
if (total >= maxItems) {
// 隐藏提示符
$(’.infinite-scroll-preloader’).hide();
} else {
$(’.infinite-scroll-preloader’).show();
}
改成这样我那个就不会在一次会话中无限加载只能生效一次了
2回答
-
访问量不大的话没太大问题,如果同学想比较完美处理这个问题,建议弄一个全局变量,类似
var needLoad = true;//这个是放在js文件开头哈,不是和下面连在一块 ... if (total >= maxItems) { // 隐藏提示符 $(’.infinite-scroll-preloader’).hide(); needLoad = false; } else { $(’.infinite-scroll-preloader’).show(); needLoad = true; }
之后再在加载的地方
if(needLoad == true){ $.getJSON( ... }
这样就能防止访问后台
00 -
翔仔
2019-04-19
同学好,视频里面应该也是带着大家修改了,通过hide()和show()去控制,保证后续换到别的类目会重新继续加载,按照同学说的第一种方式的确就满足不了换类重新加载的需求。
012019-04-19
相似问题