0

以下のコードでは、スクロール時に ajax を呼び出しています。しかし、これはajaxを複数回呼び出しています。これを制限するために、setTimeout 関数とフラグ (つまり isActive) を追加しましたが、それでも 2 回呼び出しています。
どこが間違っているのか教えてください。
前もって感謝します

var isActive = false;
var sIndex =12;
var myflag = '1';   
var offSet = 12;
var timeout;
jQuery(window).scroll(function () {
  if(typeof timeout == "number") {
  window.clearTimeout(timeout);
  delete timeout;
 }
timeout = window.setTimeout( check, 500);
});


function check(){
var cat = $(".mi-selected").attr('id');
var tecID = $("#technologyID").val();
    var notSameInd = $("#notSameInd").val();
    var sIndex =$("#startInd").val();
if (!isActive &&  ($(window).scrollTop() + $(window).height() == $(document).height()) && (sIndex !== notSameInd) ) {
   var isActive = true;
jQuery.ajax({
              type: "POST",
              url: 'http://some.com/responcePortfolio.php',
              data: {
             tecID:tecID,
                  cat:cat,
                  startIndex:sIndex,
                  offset:offSet,
                  count_now:count_now
               },
              success: function (result) {
            if(result !== ''){
                jQuery("#LoaderImage").hide();
                    jQuery("#portfolioList").append(result);
                $("#notSameInd").val(sIndex);
                    sIndex = parseInt(sIndex) + parseInt(offSet);
                $("#startInd").val(sIndex);
              }
                  else{    
                                   jQuery("#LoaderImage").hide();
               }
            isActive = false;
               },
              error: function (error) {
                  //alert(error);
              }
          });    

}

}

4

0 に答える 0