最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - jQuery expand and collapse text - Stack Overflow

programmeradmin2浏览0评论

I am having trouble expending and collapsing text on a button click. I was able to make so when you click the button, text collapse, but I also need to make so you can expand it back. I need to make it so first it is hidden, and when you click button it expends and you can collapse it again after that. Here is my code

$(document).ready(function() {
  $('#btnSlideUp').click(function() {
    $('#p1').slideUp(1000);
  });

  $('#btnSlideDown').click(function() {
    $('#p1').slideDown(1000);
  });
});
<script src=".1.1/jquery.min.js"></script>
<div class="container">
  <button id="btnSlideUp" class="btn btn-outline-success"><h1 class="jumbotron-heading">Expand</h1></button>
  <p class="lead text-muted" id="p1">Below this post you can find different articles, tips&tricks about how to find the job. You can try to contact us, and we will greatly try to answer all of your questions. You can click on "Start finding a job" and we will take you through the basics
    of finding a job, from the beginning till the end if you have absolutely no excperience.</p>
  <p>
    <a href="contactus.html"><button type="button" class="btn btn-
     outline-primary btn-lg">Contact Us</button></a>
    <a href="path.html"><button type="button" class="btn btn-outline
    secondary btn-lg">Start finding a job</button></a>

  </p>
</div>

I am having trouble expending and collapsing text on a button click. I was able to make so when you click the button, text collapse, but I also need to make so you can expand it back. I need to make it so first it is hidden, and when you click button it expends and you can collapse it again after that. Here is my code

$(document).ready(function() {
  $('#btnSlideUp').click(function() {
    $('#p1').slideUp(1000);
  });

  $('#btnSlideDown').click(function() {
    $('#p1').slideDown(1000);
  });
});
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <button id="btnSlideUp" class="btn btn-outline-success"><h1 class="jumbotron-heading">Expand</h1></button>
  <p class="lead text-muted" id="p1">Below this post you can find different articles, tips&tricks about how to find the job. You can try to contact us, and we will greatly try to answer all of your questions. You can click on "Start finding a job" and we will take you through the basics
    of finding a job, from the beginning till the end if you have absolutely no excperience.</p>
  <p>
    <a href="contactus.html"><button type="button" class="btn btn-
     outline-primary btn-lg">Contact Us</button></a>
    <a href="path.html"><button type="button" class="btn btn-outline
    secondary btn-lg">Start finding a job</button></a>

  </p>
</div>

Share Improve this question edited Oct 12, 2017 at 14:40 j08691 208k32 gold badges269 silver badges280 bronze badges asked Oct 12, 2017 at 14:37 DeadAnarch1stDeadAnarch1st 991 silver badge12 bronze badges
Add a ment  | 

5 Answers 5

Reset to default 4

The issue is that you bind two handlers to the click event on the button. When the button is clicked, both are triggered but you only see the initial one (slideUp).

$('#btnSlideDown') refers to an element that doesn't exist (at least not in your example).

The easiest way to resolve this is to use jQuery's slideToggle() method to handle the click event.

$(document).ready(function() {
  $('#btnSlideUp').click(function() {
    $('#p1').slideToggle(1000);
  });
});
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <button id="btnSlideUp" class="btn btn-outline-success"><h1 class="jumbotron-heading">Expand</h1></button>
  <p class="lead text-muted" id="p1">Below this post you can find different articles, tips&tricks about how to find the job. You can try to contact us, and we will greatly try to answer all of your questions. You can click on "Start finding a job" and we will take you through the basics
    of finding a job, from the beginning till the end if you have absolutely no excperience.</p>
  <p>
    <a href="contactus.html"><button type="button" class="btn btn-
     outline-primary btn-lg">Contact Us</button></a>
    <a href="path.html"><button type="button" class="btn btn-outline
    secondary btn-lg">Start finding a job</button></a>

  </p>
</div>

You can use jQuery's toggle method instead:

$(document).ready(function(){
    $('#btnSlideUp').click(function(){
        $('#p1').toggle(1000);
    });
 });

Try This.

$(document).ready(function() {
  $('#btnSlideUp').click(function() {
    $('#p1').slideToggle(1000);
  });

You can read the full documentation here

Use jquery .slideToggle() function.

$(document).ready(function() {
  $('#btnSlideUp').click(function() {
    $('#p1').slideToggle(1000);
  });

  
});
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <button id="btnSlideUp" class="btn btn-outline-success"><h1 class="jumbotron-heading">Expand</h1></button>
  <p class="lead text-muted" id="p1">Below this post you can find different articles, tips&tricks about how to find the job. You can try to contact us, and we will greatly try to answer all of your questions. You can click on "Start finding a job" and we will take you through the basics
    of finding a job, from the beginning till the end if you have absolutely no excperience.</p>
  <p>
    <a href="contactus.html"><button type="button" class="btn btn-
     outline-primary btn-lg">Contact Us</button></a>
    <a href="path.html"><button type="button" class="btn btn-outline
    secondary btn-lg">Start finding a job</button></a>

  </p>
</div>

Use a boolean

var isDown=true;

  $('#btnSlideUp').click(function() {
      
      if(isDown){
        $('#p1').slideUp(1000);
        isDown=false;
      }else
      {
        $('#p1').slideDown(1000);
        isDown=true;
      }
  
  });
<script src="https://ajax.googleapis./ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <button id="btnSlideUp" class="btn btn-outline-success"><h1 class="jumbotron-heading">Expand</h1></button>
  <p class="lead text-muted" id="p1">Below this post you can find different articles, tips&tricks about how to find the job. You can try to contact us, and we will greatly try to answer all of your questions. You can click on "Start finding a job" and we will take you through the basics
    of finding a job, from the beginning till the end if you have absolutely no excperience.</p>
  <p>
    <a href="contactus.html"><button type="button" class="btn btn-
     outline-primary btn-lg">Contact Us</button></a>
    <a href="path.html"><button type="button" class="btn btn-outline
    secondary btn-lg">Start finding a job</button></a>

  </p>
</div>

发布评论

评论列表(0)

  1. 暂无评论