在延迟加载中隐藏"加载更多:按钮

时间:2017-10-18 14:11:14

标签: jquery lazy-loading

我想隐藏"加载更多"按钮,如果没有更多项目,分配给" display:none" 。我有一个过滤器,根据游览标准加载HTML列表 - 所以列表永远不会相同。

E.g。如果我只有一个项目或者我只有4个项目而且没有任何内容可以加载,则应该禁用或不显示加载更多按钮。

我有以下HTML脚本:



jQuery(function ($) {

    var tour_block = $(".tour");

    // count elements and find how many have display none
    /*
     var size_li = tour_block.size();
     alert( size_li );
     */


    tour_block.slice(0, 6).show();

    $("#loadMore").on('click', function (e) { alert("dd");
        e.preventDefault();

        var hidden_tour = $(".tour:hidden");

        hidden_tour.slice(0, 4).slideDown();
        if (hidden_tour.length == 0) {
            $("#load").fadeOut('slow');
        }
        $('html,body').animate({
            scrollTop: $(this).offset().top
        }, 1500);
    });

});

.tour {
  border: 1px solid red;
  display: none;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div class="results">
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
  <div class="tour">some tour content</div>
</div>

<a id="loadMore" href="#">Load More Tours</a>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

添加一个测试按钮:

<button id="test-button">Test Button</button>

使用此脚本:

$('#test-button').on('click', function () {

    // Check if there are no hidden values (note ! prefix)
    // Select all with class 'tour' and filter for hidden items
    if (!$('.tour:hidden').length) {
        // Hide button
        $('#loadMore').hide();
    }

});

希望它有所帮助。