【问题标题】:Prevent Bootstrap 5 Accordion from collapsing防止 Bootstrap 5 Accordion 崩溃
【发布时间】:2021-07-20 06:40:41
【问题描述】:

我正在使用 Bootstrap 5 的 Accordion 组件。好消息:效果很好!

但是折叠手风琴的按钮很大,所以我想在其中添加一个额外的链接,用于一些额外的东西。

    <div class="accordion accordion-flush" id="myaccordion">
        <div class="accordion-item">
<!-- important part starts here -->
            <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse-001" aria-expanded="false" aria-controls="collapse-001">
                <img src="https://picsum.photos/50/50" alt="such a nice pic"/>
                <p>Sneak peek of what will appear</p>
                <a href="http://www.lets-go.out">Let's go</a>
            <button>
<!-- important part is over -->
            <div id="collapse-001" class="accordion-collapse collapse" aria-labelledby="heading-001" data-bs-parent="#myaccordion">
                <div class="accordion-body">
                    <p>Hidden stuff goes here</p>
                </div>
            </div>
        </div>
        
        <div class="accordion-item">
            ...
        </div>
    </div>

我想要什么:单击按钮中的任意位置将打开手风琴,但如果我单击链接则不会。如果我点击链接,我想关注href。

我得到了什么:点击按钮中的任意位置都会打开手风琴,即使我点击了链接。

我尝试在链接上添加额外的 e.preventDefault() 或 e.stopPropagation(),但没有成功:(

有什么想法吗?

【问题讨论】:

  • 我没有更多的 JS。我所尝试的只是在我的链接中添加 onclick="e.stopPropagation(); window.open('myurl','_self');"但没有成功。

标签: javascript twitter-bootstrap accordion bootstrap-5 bootstrap-accordion


【解决方案1】:

我尝试将锚点嵌套在按钮内,但它不起作用。单击事件始终在按钮级别捕获。 我没有检查引导程序源代码来检查替代方案,但找到了一种使用以下方法实现您所要求的方法:将按钮和链接都作为 div 的子项并使用 css 进行调整以使其在视觉上保持相同“行”。

    <h2 class="accordion-header" id="headingOne">
      <div class="d-flex">
        <div class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
          Accordion Item #1
        </div>
        <a class="outlink" href="https://pullman.clubify.cl">Let's go</a>
      </div>
    </h2>

【讨论】:

  • 谢谢。我想它可能会成功。这可能是“静态”内容的完美解决方案,但我的链接中的内容会在每个手风琴项目中发生变化,并且根据屏幕的大小,我可能会有跳线。所以我必须添加更多的 CSS 来让幻觉在每种情况下都完美:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 2013-05-17
  • 1970-01-01
  • 1970-01-01
  • 2018-11-12
  • 2013-05-30
相关资源
最近更新 更多