js下拉加载功能函数

本人第一篇博客,入行好久了,懒,写一个玩玩

function scroll(f,data) {
    /**
     * isLoading 当前是否在加载状态
     * f    要执行的函数
     * data   f函数的参数 是一个对象,
     * 注意,不要放page 分页数据,page要在外面的 f 函数赋值
     */
//绑定滚动事件
    $(window).scroll(function () {
        //如果当前页面正在加载数据  这个时候 下面那的代码不执行
        if (isLoading) return;
        //获取文档的高度
        var dH = $(document).height();
        //获取滚动高度
        var sH = $(window).scrollTop();
        //获取可视区域的高度
        var wH = $(window).height();
        var s = dH - sH;
        //检测尺寸
        //文档高度减去滚动高度小于div的高度 进行加载
        // console.log(dH -sH)
        if (dH - sH <= 700) { //这里的数值需要根据拉取的数据多少进行调节
            //修改检测变量的值 为真
            isLoading = true;
            //请求加载的数据函数
                 f(data);
        }
    })
}

//要调用的函数 
var page=1;
var isLoading = false; //设置当前是否能加载
分页参数不能跟放在data里,函数scroll加载后,里面的参数是死的了,page要在加载的函数里调用
  function getGoodslist(data){
        data.page=page;
        $.get('__APP__/Sngoods/getlist',data, function (res) {
            if (res.data != null) {
                page++;
                isLoading = false;
            }else{
                isLoading=true;    //isLoading  是否加载,当返回的数据是空的时候,就禁止下拉加载了
            }
            var data = res.data;
            if(res.error=='00'){
                $('.content').append(goods(data));
            }else{
                $('.bottom').show();
            }
        },'json')
    }

调用
//绑定滚动事件
    scroll(getGoodslist,{vidx: vidx, status: 1});

我试过好多次想调用scroll函数是直接传入一个完整的函数,但是发现这样的话加载的时候就会调用传入的函数一次,之后这个函数就不会调用了,不知道这是什么原理,看到这篇文章的小伙伴,要是知道的话留个言,互帮互助了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值