Javascript通过滚动检查是否达到了div

时间:2017-02-02 11:32:36

标签: jquery scroll duplicates

该脚本正常工作但我的警报出现两次也是我的功能“check_page_end”的调用,它显示我的帖子两次

<script> 

        jQuery(document).ready(function(){

        $(window).bind('scroll', function() {
            if($(window).scrollTop() >= $('#posts').offset().top + $('#posts').outerHeight() 
                - window.innerHeight) {
                alert('end reached');
                check_page_end($('#offset').val());
            }
        });



        });
    </script>

2 个答案:

答案 0 :(得分:0)

避免重复滚动事件触发的一种方法是推迟在事件触发后几秒钟发生回调 - 但首先取消任何先前排队的回调。

var to;
$(window).on('scroll', function() {
    clearTimeout(to);
    to = setTimeout(function() { alert('finished scroll'); }, 500);
});

回滚将在滚动事件触发后0.5秒触发。如果在此之前另一个滚动事件触发(例如滚动继续),则排队的回调被取消。

答案 1 :(得分:0)

我通过添加一个新的布尔变量解决了这个问题,它在我调用我的函数时改变了它的状态,这里它只被激活了一次

<script> 
        window.load_more_content = true;
        jQuery(document).ready(function(){
        $(window).scroll(function(){
        if(window.load_more_content &&  $(window).scrollTop() >= ($('#posts').height())){
            window.load_more_content = false;
            console.log('posts end loading ohers .. '+$('#offset').val()); 
            get_more_posts($('#offset').val());
        }
        }); 
        });
</script>