0

there is a collapse (with button 2) inside of a another collaspe (with button 1). when parent is collapsed the background color of button 1 is blue (bg- primary) and when its not collapsed the backpround color is yellow (bg- warning). when we click button 2, the color stays yellow but when button 2 clicked again and its collapsed, the color of button 1 changes to blue. I want to button 1 stays yellow when it is not collapsed whether her child is collapsed or not.

thank you and sorry for my bad english.

<!DOCTYPE html>
<html lang="en">

<head>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
</head>

<body>

  <div class="container">
    <div class="my-2">
      <button class="btn btn-primary" id="btn1" type="button" name="button" data-toggle="collapse" data-target="#collapsebtn" aria-expanded="false" aria-controls="collapsebtn">
          button 1
        </button>
    </div>

    <div class="collapse" id="collapsebtn">
      <div class="mb-2">
        <button class="btn btn-dark btn-sm" type="button" name="button" data-toggle="collapse" data-target="#collapsebtn2" aria-expanded="false" aria-controls="collapsebtn2">
            button 2
          </button>
      </div>
      <div class="collapse border border-primary" id="collapsebtn2">
        Lorem ipsum dolor text....
      </div>
    </div>
  </div>


  <script type="text/javascript">
    $(document).ready(function() {
      $("#collapsebtn").on("show.bs.collapse", function() {
        $("#btn1").removeClass("btn-primary");
        $("#btn1").addClass("btn-warning");
      });

      $("#collapsebtn").on("hidden.bs.collapse", function() {
        $("#btn1").addClass("btn-primary");
        $("#btn1").removeClass("btn-warning");
      });
    });
  </script>
</body>

</html>

1 Answer 1

1

add this code:

 $("#collapsebtn").on("hidden.bs.collapse", function() {

  if(!$('#collapsebtn').hasClass('show')){

    $("#btn1").addClass("btn-primary");
    $("#btn1").removeClass("btn-warning");

    }
  });
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.