javascript - 页签切换与scroll事件
阿神
阿神 2017-04-10 17:47:02
[JavaScript讨论组]

$(window).scroll(function(){

            var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
            var scrollHeight = document.documentElement.scrollHeight ||  document.body.scrollHeight;
            var windowHeight =  document.documentElement.clientHeight || document.body.clientHeight;

            if(scrollTop + windowHeight + 30 >= scrollHeight){
                if(prevTime != null && (parseInt(Date.now())-parseInt(prevTime)) < 500){
                    return false;
                }
                prevTime = Date.now();
                //ajax 加载数据....(1)
                }

})

需求:页面有个tab切换,有的tab带翻页,有的不带
实现方法:每次tab切换的click事件里先解绑scroll事件$(window).off('scroll');然后再绑定scroll事件,scroll里判断页面是否滚动到最下端,如果是则执行ajax加载
问题:每次一个p下拉到特别长得时候,tab切换到另一个p的时候都会触发一次(1)里的ajax加载
如果才能在tab切换的时候移除这个scroll里的事件呢?

现在已经在tab的click事件里添加了$(window).off('scroll'),还是不行

刚才又试了一下,应该是在tab的click里的$(window).off('scroll')解绑之前,因为页签切换,页面长度变里,所以先执行了$(window).scroll里的scrollTop + windowHeight + 30 >= scrollHeight判断,正好条件成立,然后ajax请求,后来才执行的$(window).off('scroll'),这个怎么解决呢

阿神
阿神

闭关修行中......

全部回复(1)
迷茫

给tab的切换加上监听事件, 在window的scroll之后监听(后监听的先执行),这样切换tab的时候先解绑window的scroll事件,就能解决了。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号