jquery加载更多onscroll一次多次调用该函数

时间:2016-04-18 05:49:43

标签: javascript jquery html

我写了一个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个请求。

问题是什么?

由于

0 个答案:

没有答案