Bootstrap 4嵌套折叠样式问题

时间:2018-11-11 19:11:25

标签: html css twitter-bootstrap

另一个collaspe(带有按钮1)内部有一个折叠(带有按钮2)。 当父对象合拢时,按钮1的背景色为蓝色(主色),当按钮1未合拢时,背景色为黄色(bg警告)。当我们单击按钮2时,颜色保持黄色,但是当按钮2再次单击并折叠时,按钮1的颜色变为蓝色。我想让按钮1在不折叠的情况下保持黄色,无论她的孩子是否折叠。

谢谢你,我的英语不好。

<!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 个答案:

答案 0 :(得分:1)

添加此代码:

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

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

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

    }
  });