繁体   English   中英

jQuery加载更多onscroll一次调用多次

[英]jquery load more onscroll calling the function many times at once

我编写了一个javascript,当用户滚动到div底部时会加载更多内容。 这是我正在使用的代码:

var loadingSet = 0
var diMore = 1
var ob = 'default';
var db = 'desc' //نزولی
var doAppend =  true
var loading= false;
function sort(){
     diMore=1
    ob = $('#ob').val();
    db = $('#db').val();
    loadingSet=-1
    doAppend = false

    loadMore()

}

function loadMore()
{

    if (diMore ==1 && !loading){
    var loading= false;
         loadingSet++ ;
         loading=true 
     $(document).ready(function() { 
     $(document).on({
         ajaxStart: function() { $("#spinner").css("display", "block");  },
         ajaxStop: function() {  $("#spinner").fadeOut('slow'); }    
     });
        $.ajax({
        type: "POST",
        url:baseUrl+ "getNewItems.php",
        data: "limit=<?php echo $limit?>&stId=<?php echo $admins_id?>&status="+status+"&ob=" + ob +"&da="+ db +"&loadingSet="+loadingSet+"&submit=true",
         success: function(msg){
        str=$.trim(msg)
        var More = str.split('##');
        if (More[0] == 'n'){
            diMore=0
        }else{
            $(window).bind('scroll', bindScroll2);
            loading=false
        }

        if (doAppend){

            $('#prodDiv').append(More[1])    
        }else{
               doAppend=true
    $('#prodDiv').html('')
    $('#prodDiv').fadeOut(500, function() {
        $(this).html(More[1]).fadeIn(500);
    });


        }


        }
   })   
    })

   }

 }




 function bindScroll2(){
   $(window).bind('scroll', function() {
    if($(window).scrollTop() >= $('#mainDivCategory').offset().top + $('#mainDivCategory').outerHeight() - window.innerHeight) {
         $(window).unbind('scroll');
         if (!loading){
            loadMore();
         }
    }
    });
}

$(window).scroll(bindScroll2);

问题是,当我在div的底部滚动时,loadMore函数一次调用了很多次。 大约一次有50 -60个请求。

有什么问题 ?

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM