2017-04-04 72 views
1

我有一個以上的ajax頁面,我想要在滾動後加載我的ajax頁面,我該怎麼做?我有一個簡單的基本結構,我想加載我的ajax滾動後像無限滾動或懶惰的圖像。如何在滾動後加載ajax?

$('.lazy_content').on('load', function (e) { 
 

 
      data_url = $(this).attr("data-url"); 
 
      data_id = $(this).attr("data-target-id"); 
 

 
      $.ajax({ 
 
       url: data_url, 
 
       type: "POST", 
 
       beforeSend: function() { 
 
        $(".loaderDiv").show(); 
 
        $("#" + data_id).html(""); 
 
       }, 
 
       success: function (data) { 
 
         $(data).each(function(index, el) { 
 
\t      $(".loaderDiv").hide(); 
 
\t      $("#" + data_id).html(data); 
 
       \t \t }); 
 
       } 
 

 
      }) 
 

 
     });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="lazy_content" data-url="/ajax/comments/aurum-didyma-spa-beach-resort" data-target-id="comments-content"> 
 
    <h4>COMMENTS</h4> 
 
    <div id="comments-content" class="content-target"></div> 
 
</div>

+0

你有沒有嘗試http://jquery.eisbehr.de/lazy/? – Sami

+0

我正在使用lazySizes插件,它不支持html的懶惰,我無法更改我的懶插件 –

+0

請參閱準備使用示例:https://www.sitepoint.com/jquery-infinite-scrolling-demos/ 在這些頁面中,您可以看到使用jQuery的示例(無插件) –

回答

0

只需添加事件滾動的元素(格):

$('.lazy_content').scroll(function() { 
     data_url = $(this).attr("data-url"); 
     data_id = $(this).attr("data-target-id"); 

     $.ajax({ 
      url: data_url, 
      type: "POST", 
      beforeSend: function() { 
       $(".loaderDiv").show(); 
       $("#" + data_id).html(""); 
      }, 
      success: function (data) { 
       $(data).each(function(index, el) { 
        $(".loaderDiv").hide(); 
        $("#" + data_id).html(data); 
       }); 
      } 
     }) 
}); 
+1

請爲滾動位置添加條件以避免在**每個滾動**事件 –

+0

上加載數據,但當用戶到達底部ajax時它必須加載動態 –

0

你實現這一目的的本地JS事件:

onscroll="myFunction"