首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery:点击显示,点击隐藏,循环无限

问jQuery:点击显示,点击隐藏,循环无限
EN

Stack Overflow用户
提问于 2015-07-21 02:44:04
回答 2查看 459关注 0票数 0
  1. 首先,有一行带有“查看更多”按钮的图像。
  2. 当单击“查看更多”按钮时,将在第一行图像之后添加第二行图像,并将“查看更多”按钮替换为“查看更少”按钮。
  3. 当单击“查看较少”按钮时,上面步骤中添加的第二行图像将被删除,而“查看较少”按钮将被删除。

问题:我如何使它成为一个无限循环,其中“查看更多”按钮将在步骤3之后重新出现,从而允许重复?

这里是jQuery:

代码语言:javascript
复制
    $(document).ready(function() {
        //Hides the new row to prepare for click event
        $('.images-section').children('.new-row').hide();
        //Creating variables for see more/less buttons
        var more = $('.images-button-more');
        var less = $('.images-button-less'); 
        less.hide();
        //Add new row on click of see more button
        more.on('click', function() {
            $('.images-section').children('.new-row').show(function() {
                $(this).insertAfter('.old-row').slideDown('1000');
                more.fadeOut('slow', function() {
                    less.insertAfter(more).fadeIn('slow');
                });
            });
        });
        //Remove new row on click of see less button
        less.on('click', function() {
            $('.new-row').slideUp('1000', function() {
                less.fadeOut('slow');
            });
        });
    });

下面是HTML:

代码语言:javascript
复制
<section class="no-padding remove-tablet">
        <div class="container-fluid images-section">
            <div class="row no-gutter old-row">
              <div class="col-lg-2 col-sm-6">
                    <img src="img/ant-johns.jpg" class="img-responsive" alt="Ant Johns" width="317px" height="322px">
                </div>
                <div class="col-lg-2 col-sm-6">
                    <img src="img/white-guy.jpg" class="img-responsive" alt="Arnold Jr" width="317px" height="322px">
                </div>
                <div class="col-lg-2 col-sm-6">
                    <img src="img/enrique-double-bi.jpg" class="img-responsive" alt="Enrique Double Bi" width="317px" height="322px">
                </div>
                <div class="col-lg-2 col-sm-6">
                    <img src="img/anthony-b.jpg" class="img-responsive" alt="Anthony B" width="317px" height="322px">
                </div>
                <div class="col-lg-2 col-sm-6">
                    <img src="img/manny-most-muscular.jpg" class="img-responsive" alt="Manny Most Muscular" width="317px" height="322px">
                </div>
                <div class="col-lg-2 col-sm-6">
                    <img src="img/remi-model-tats.jpg" class="img-responsive" alt="Remi Model Tats" width="317px" height="322px">
                </div>
            </div>
            <div class="row no-gutter new-row">
              <div class="col-lg-2 col-sm-6">
                    <img src="img/ant-johns.jpg" class="img-responsive" alt="Ant Johns" width="317px" height="322px">
                </div>
                <div class="col-lg-2 col-sm-6">
                    <img src="img/white-guy.jpg" class="img-responsive" alt="Arnold Jr" width="317px" height="322px">
                </div>
                <div class="col-lg-2 col-sm-6">
                    <img src="img/enrique-double-bi.jpg" class="img-responsive" alt="Enrique Double Bi" width="317px" height="322px">
                </div>
                <div class="col-lg-2 col-sm-6">
                    <img src="img/anthony-b.jpg" class="img-responsive" alt="Anthony B" width="317px" height="322px">
                </div>
                <div class="col-lg-2 col-sm-6">
                    <img src="img/manny-most-muscular.jpg" class="img-responsive" alt="Manny Most Muscular" width="317px" height="322px">
                </div>
                <div class="col-lg-2 col-sm-6">
                    <img src="img/remi-model-tats.jpg" class="img-responsive" alt="Remi Model Tats" width="317px" height="322px">
                </div>
            </div>
            <div class="row">
                <div class="col-sm-12 text-center">
                    <a class="images-button-more" style="padding-bottom: 3px; border-bottom: 1px dotted rgb(130,181,65); position: relative; top: 5px; cursor: pointer; text-decoration: none; border-radius: 50%">See more</a>
                </div>
                <div class="col-sm-12 text-center">
                    <a class="images-button-less" style="padding-bottom: 3px; border-bottom: 1px dotted rgb(130,181,65); position: relative; top: 5px; cursor: pointer; text-decoration: none; border-radius: 50%">See less</a>
                </div>
            </div>
        </div>
    </section>

我试着将jQuery放在if语句周围,并将" isClosed,isNotClosed“这样的新变量放入其中,然后根据特定的事件和循环(如果isClosed为真)将它们的值从0更改为1,但这并没有起到任何作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-21 02:55:08

您只是遗漏了jquery中的一行:

代码语言:javascript
复制
less.on('click', function() {
     $('.new-row').slideUp('1000', function() {
         less.fadeOut('slow');
         more.insertAfter(less).fadeIn('slow');//this line
     });
 });
票数 1
EN

Stack Overflow用户

发布于 2015-07-21 02:53:29

一种选择是在页面加载时加载第二行图像,但是用display: none隐藏它,并给它一个类似于id='second-row'的id。

然后,在单击事件中,您可以执行以下操作:

代码语言:javascript
复制
$('#buttonId').on('click', function() {
 $('#second-row').slideToggle();
});

这是一把小提琴http://jsfiddle.net/kqvzhoo1/

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

https://stackoverflow.com/questions/31529500

复制
相关文章

相似问题

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