首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用jQuery为文章网站“展示更多”和“展示更少”

使用jQuery为文章网站“展示更多”和“展示更少”
EN

Stack Overflow用户
提问于 2017-05-26 07:36:13
回答 2查看 548关注 0票数 0

我试图显示一个额外的文章行时,用户点击‘显示更多’,我想删除与‘显示更少’行。

我有4行文章,但我想从2行开始,让用户一次添加一行。

我的jQuery可能有点乱,因为我从不同的地方取了一些零碎的东西。

我通过删除内容简化了代码。

你知道为什么它不工作吗?

代码语言:javascript
复制
<div class="writing-clips">
  <div class="row">
    <h2>Writing Clips</h2>
  </div>
  <div class="row clip-container li">
    <div class="col span-1-of-4 box" id="story-1" href="#">
      <a href="#">
        content
      </a>
    </div>
    <div class="col span-1-of-4 box" id="story-2">
      <a href="#">
        content
      </a>
    </div>           
  </div>
  <div class="row clip-container clips-2 li">
    <div class="col span-1-of-4 box" id="story-5" href="#">
      <a href="#">
        content
      </a>
    </div>
    <div class="col span-1-of-4 box" id="story-6" href="#">
      <a href="#">
        content     
      </a>
    </div>
  </div>
  <div class="row clip-container clips-3 li">
    <div class="col span-1-of-4 box" id="story-9" href="#">
      <a href="#">
        content
      </a>
    </div>
    <div class="col span-1-of-4 box" id="story-10" href="#">
      <a href="#">
        content   
      </a>
    </div>
  </div>
  <div class="row clip-container clips-4 li">
    <div class="col span-1-of-4 box" id="story-13" href="#">
      <a href="#">
        content
      </a>
    </div>
    <div class="col span-1-of-4 box" id="story-14" href="#">
      <a href="#">
        content 
      </a>
    </div>
  </div>
  </section>
<div class="showmore">showmore</div>
<div class="showless">showless</div>

jquery:

代码语言:javascript
复制
$(document).ready(function(){

  size_li = $(".writing-clips .li").size();
  x=2;
  $('.writing-clips .li:lt('+x+')').show();
  $('.showmore').click(function () {
    x= (x+1 <= size_li) ? x+1 : size_li;
    $('.writing-clips .li:lt('+x+')').show();
  });
  $('.showless').click(function () {
    x=(x-1<2) ? 2 : x-1;
    $('.writing-clips .li').not(':lt('+x+')').hide();
  });

});

css:

代码语言:javascript
复制
.writing-clips .li { display: none; }

.showmore {
    cursor: pointer;
    color: green;
}

.showmore:hover { color: blue; }

.showless {
    color: red;
    cursor: pointer;
}

颜色{ .showless:hover : blue;}

EN

回答 2

Stack Overflow用户

发布于 2017-05-26 07:51:41

您需要在显示前两行之前隐藏所有行

添加此行

代码语言:javascript
复制
$('.writing-clips .li').hide();

在此之前

代码语言:javascript
复制
$('.writing-clips .li:lt('+x+')').show();
票数 1
EN

Stack Overflow用户

发布于 2017-05-26 08:31:36

我重写了你的剧本。

这将执行正确的比较并递增一个计数器,该计数器表示实际显示了多少个。

请参阅代码中的控制台日志和注释。

代码语言:javascript
复制
$(document).ready(function(){
  
  // Show first four.
  var shownOnload = 4;
  for(i=0;i<shownOnload;i++){
    $(".col").eq(i).show();
  }
  
  // Total link we have
  var size_li = $(".col").length;
  console.log( " Total: " +size_li );

  // More handler
  $(".showmore").click(function () {
    console.log("More clicked!");
    
    if(shownOnload<size_li && shownOnload>=0){
      shownOnload++;
      console.log("Show #"+shownOnload);
      $(".col").eq(shownOnload-1).show();
    }
  });
  
  // Less handler
  $(".showless").click(function () {
    console.log("Less clicked!");
    
    if(shownOnload<=size_li && shownOnload>0){
      console.log("Hide #"+shownOnload);
      $(".col").eq(shownOnload-1).hide();
      shownOnload--;
    }
  });

}); // ready
代码语言:javascript
复制
.col{
  display:none;
}
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="writing-clips">
  <div class="row">
    <h2>Writing Clips</h2>
  </div>
  <div class="row clip-container li">
    <div class="col span-1-of-4 box" id="story-1" href="#">
      <a href="#">
        content 1
      </a>
    </div>
    <div class="col span-1-of-4 box" id="story-2">
      <a href="#">
        content 2
      </a>
    </div>           
  </div>
  <div class="row clip-container clips-2 li">
    <div class="col span-1-of-4 box" id="story-5" href="#">
      <a href="#">
        content 3
      </a>
    </div>
    <div class="col span-1-of-4 box" id="story-6" href="#">
      <a href="#">
        content 4
      </a>
    </div>
  </div>
  <div class="row clip-container clips-3 li">
    <div class="col span-1-of-4 box" id="story-9" href="#">
      <a href="#">
        content 5
      </a>
    </div>
    <div class="col span-1-of-4 box" id="story-10" href="#">
      <a href="#">
        content 6
      </a>
    </div>
  </div>
  <div class="row clip-container clips-4 li">
    <div class="col span-1-of-4 box" id="story-13" href="#">
      <a href="#">
        content 7
      </a>
    </div>
    <div class="col span-1-of-4 box" id="story-14" href="#">
      <a href="#">
        content 8
      </a>
    </div>
  </div>
  </section>
<div class="showmore">showmore</div>
<div class="showless">showless</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44191352

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档