【问题标题】:Bootstrap toggle collapse unknown idBootstrap 切换折叠未知 id
【发布时间】:2020-03-08 16:47:05
【问题描述】:

我正在使用引导程序尝试在我单击的容器旁边创建一个data-toggle="collapse"。由于我正在生成这个数据库结果列表,而且这可能会变得很大,我不想在上面浪费 ID。 我已经尝试过这样的事情:

<a class="list-group-item accordion-toggle" data-toggle="collapse" href="javascript:return $(this).next();">
<div class="card-collapse collapse in">
  <div class="card-body">
    Hello
  </div>
</div>

我在这里遗漏了一些东西,因为它不起作用。关于如何做到这一点的任何想法?

更新: 我正在寻找的是让这个href="javascript:return $(this).next();" 定位下一个元素。

更新 2: 我的目标是,点击链接应该在&lt;div class="card-collapse collapse in"&gt;上切换折叠

【问题讨论】:

  • 为什么要在此处标记 bootstrap 4?
  • 你的标签&lt;div class="panel-collapse collapse in"&gt;应该有id="collapse"属性
  • @NishargShah 因为我在这里使用它并且它有一个内置的解决方案,但我需要为下一个项目分配 ID。
  • @LUXS panel-body 是 bootstrap 3 的一个类,那么为什么要标记 BS4?
  • 您希望实现的定位类型是什么?

标签: javascript jquery html css bootstrap-4


【解决方案1】:

通过在该页面上放置一个小脚本来获得解决方案。

<script>
  $('.accordion-toggle').on('click', function() {
    $(this).next('div.collapse').slideToggle();
  });
</script>

我还添加了$('.collapse').slideUp(); 作为函数的第一行,以便只打开一个项目。

$('.accordion-toggle').on('click', function() {
  if($(this).next('div.collapse').is(':hidden')) {
    $('.collapse').slideUp();
  }
  $(this).next('div.collapse').slideToggle();
});
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="list-group w-100">
  <a class="list-group-item accordion-toggle" data-toggle="collapse" href="#"><h3>Entry 1</h3></a>
  <div class="list-group-item collapse in">
    <p>Some details on entry 1.</p>
  </div>
  <a class="list-group-item accordion-toggle" data-toggle="collapse" href="#"><h3>Entry 2</h3></a>
  <div class="list-group-item collapse in">
    <p>Some details on entry 2.</p>
  </div>
  <a class="list-group-item accordion-toggle" data-toggle="collapse" href="#"><h3>Entry 3</h3></a>
  <div class="list-group-item collapse in">
    <p>Some details on entry 3.</p>
  </div>
</div>

【讨论】:

    【解决方案2】:

    试试这个简单的代码,它工作正常

    function doit(e){
    $(e.target).next().collapse('toggle')
    } 
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
    
    
      <a class="btn btn-primary" href="javascript:void(0);" onclick="doit(event);" role="button" aria-expanded="false" aria-controls="collapseExample">
        Link with href
      </a> 
     
    <div class="collapse">
      <div class="card card-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident.
      </div>
    </div>

    【讨论】:

      猜你喜欢
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-27
      • 1970-01-01
      • 2013-04-25
      • 2012-06-27
      • 2019-02-07
      相关资源
      最近更新 更多