隐藏“加载更多:延迟加载中的按钮

Hide "Load More: button in a lazy load

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

例如如果我只有一个项目或我只有 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>

添加一个按钮进行测试:

<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();
    }

});

希望对您有所帮助。