开发者问题收集

Bootstrap Accordion/Collapse 未捕获的 TypeError:非法调用

2021-11-04
1944

我正在使用 Bootstrap 5 折叠功能,我的代码似乎符合 BS5 文档,但几个月前在 StackOverflow 上出现了一个与此类似的问题:

Bootstrap Accordion Throws TypeError:非法调用

这是浏览器错误消息:

Uncaught TypeError: Illegal invocation
at Object.find (selector-engine.js:18)
at X._getParent (collapse.js:301)
at new X (collapse.js:93)
at Function.collapseInterface (collapse.js:347)
at collapse.js:397
at Array.forEach (<anonymous>)
at HTMLButtonElement.<anonymous> (collapse.js:382)
at HTMLDocument.s (event-handler.js:119)

演示在这里: https://codepen.io/highercoding/pen/BadYQrL?editors=1010

1个回答

罪魁祸首是 #collapse-manufacturers 上的 data-bs-parent 。它应该是折叠面板组件 #product-filter-accordion id

<!DOCTYPE html>
<html>
  <head>
    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous">
    <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf" crossorigin="anonymous"></script>
  </head>
  <body>
      
    <div class="accordion accordion-flush" id="product-filter-accordion">
      <div id="product-filter-sidebar-manufacturers" class="product-filter-sidebar widget-area accordion-item" role="complementary">
        <h3 id="heading-manufacturers" class="accordion-header">
          <button data-bs-toggle="collapse" data-bs-target="#collapse-manufacturers" aria-controls="collapse-manufacturers" aria-expanded="false" class="accordion-button collapsed" type="button">Click here on the accordion header </button>
        </h3>
        <div id="collapse-manufacturers" aria-labelledby="heading-manufacturers" data-bs-parent="#product-filter-accordion" class="accordion-collapse collapse">
          <div class="accordion-body">You no more have to click twice to see the accordion body content :)</div>
        </div>
      </div>
    </div>
      
  </body>
</html>
Nathan
2021-11-04