【问题标题】:show collapse panel and edit other panel class显示折叠面板并编辑其他面板类
【发布时间】:2018-01-07 22:03:05
【问题描述】:

我想显示带有按钮的折叠面板,然后编辑其他面板的类,使其适合页面宽度。这是我的代码

按钮

// first try
$('#signup').on('click', function() {
  $('#table').removeClass('col-md-12').addClass('col-md-8');
});
// second try
$('#signup').on('click', function() {
  $('#table').toggleClass('col-md-12 col-md-8');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn btn-success" data-toggle="collapse" data-target="#panel" id="signup">Signup</button>

<div class="form-row">
  <!-- panel 1 -->
  <div class="form-group col-md-4 collapse" id="panel">
    // stuff here
  </div>

  <!-- panel 2 -->
  <div class="form-group col-md-12 ml-auto" id="table">
    // stuff here
  </div>
</div>

当我点击按钮时,我希望面板 1 出现,然后面板 2 类 col-md-12 更改为 col-md-8,这样它就可以适应引导网格系统。我尝试了 onclick 触发器,但它不起作用。

【问题讨论】:

  • 你能贴出你试过的onClick代码吗?
  • tabel 错字只是在这里还是在代码中?
  • 这里打错了,对不起

标签: jquery html css bootstrap-4


【解决方案1】:

$('#panel').on('hidden.bs.collapse', function(e) {
  $('#table').toggleClass('col-xs-12').toggleClass('col-xs-8');
}).on('show.bs.collapse', function(e) {
  $('#table').toggleClass('col-xs-8').toggleClass('col-xs-12');
})
.form-row.row {
  margin-right: 0px;
  margin-left: 0px;
}
<header>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
</header>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<button class="btn btn-success" data-toggle="collapse" data-target="#panel" id="signup">Signup</button>

<div class="form-row row">
  <!-- panel 1 -->
  <div class="form-group col-xs-4 collapse" id="panel">
    // stuff here  Panel 1
  </div>

  <!-- panel 2 -->
  <div class="form-group col-xs-12 ml-auto" id="table">
    // stuff here  Panel 2
  </div>
</div>

编辑

更新的 sn-p 不使用 Bootstrap 网格系统。

$('#panel').on('hidden.bs.collapse', function(e) {
  $('#table').toggleClass('col-xs-12');
}).on('show.bs.collapse', function(e) {
  $('#table').toggleClass('col-xs-12');
})
.some-sontainer {
  margin-right: 0px;
  margin-left: 0px;
  display: flex;
}

.some-sontainer .col1{
  width: 200px;
}

.some-sontainer .col2{
  width: 100%;
}

#table{
  background-color: red;
}

#panel{
  background-color: green;
}
<header>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
</header>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

<button class="btn btn-success" data-toggle="collapse" data-target="#panel" id="signup">Signup</button>

<div class="form-row some-sontainer">
  <!-- panel 1 -->
  <div class="form-group col1 collapse" id="panel">
    // stuff here  Panel 1
  </div>

  <!-- panel 2 -->
  <div class="form-group col2 col-xs-12 ml-auto" id="table">
    // stuff here  Panel 2
  </div>
</div>

【讨论】:

  • 不是那样的,我希望面板 1 和面板 2 在一行中,当面板 1 出现时,面板 2 向右缩小,类 col-md-8
  • 这是你的 CSS 选择。我进行了更改以连续制作 div。
  • 对不起,它不起作用,即使没有显示面板 1,它也只是将面板 2 向右缩小。
  • 怎么样?当我运行 sn-p 并单击按钮时,面板 1 会相应地折叠和展开。我更改了内容,因此您可以看到它确实显示和隐藏。
  • 我不知道如何,但我已经复制了您的 css 并修改了表单类,但面板 2 向右缩小,这就像在类中添加表格响应一样。你的 sn-p 工作得很好,但我不明白为什么它在我的页面上不起作用
【解决方案2】:

我尝试结合方法,终于成功了。

$('#panel').on('hidden.bs.collapse', function(){
    $('#table').removeClass('col-md-8').addClass('col-md-12');
});
$('#signup').on('click', function(){
    $('#table').removeClass('col-md-12').addClass('col-md-8');
});

【讨论】:

    猜你喜欢
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-11
    • 1970-01-01
    • 2015-11-25
    • 2013-03-04
    • 2014-11-29
    相关资源
    最近更新 更多