我在第一个站点上遇到的问题似乎很简单,也很普遍,通常发布在互联网上,被称为“显示更多”文本。但是我真正想要的是完全不同的。
首先,我有带有嵌套元素而不是纯文本的html元素。其次,我不想一次知道所有其余的隐藏元素,但要以3个元素或4个元素左右的块为单位
考虑以下示例

<div class = "outer" >

  <div class="child" > one </div>
  <div class="child" > one </div>
  <div class="child" > one </div>
  ------above elements to show by default when page loads------

  <div class="child" > one </div>
  <div class="child" > one </div>
  <div class="child" > one </div>


------这三个点击“显示更多”-

  <div class="child" > one </div>
  <div class="child" > one </div>
  <div class="child" > one </div>


------这三个再次点击“显示更多”-

  and so on until all the elements are not finished.

</div>


现在这也很平易近人,但是如果我们必须在多个层面上做到这一点,该怎么办呢?表示我们将div与外部div如下移动

<div class = "outer" >

      <div class="child" > one </div>
      <div class="child" > one </div>
      <div class="child" > one </div>...."show more"

</div>
    <div class = "outer" >

      <div class="child" > one </div>
      <div class="child" > one </div>
      <div class="child" > one </div>...."show more"

</div>
    <div class = "outer" >

      <div class="child" > one </div>
      <div class="child" > one </div>
      <div class="child" > one </div>...."show more"

</div>

最佳答案

这是适合您情况的可行解决方案:
http://jsfiddle.net/4C3AM/

var itemsCount = 0,
itemsMax = $('.outer div').length;
$('.outer div').hide();

function showNextItems() {
    var pagination = 3;

    for (var i = itemsCount; i < (itemsCount + pagination); i++) {
        $('.outer div:eq(' + i + ')').show();
    }

    itemsCount += pagination;

    if (itemsCount > itemsMax) {
        $('#showMore').hide();
    }
};

showNextItems();

$('#showMore').on('click', function (e) {
    e.preventDefault();
    showNextItems();
});

关于javascript - 显示更多按钮以在javascript或jquery中作为分页工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21576337/

10-13 02:21