Bootstrap5 Accordion/Collapse触发Illegal invocation报错如何解决?
报错触发原因
该Uncaught TypeError: Illegal invocation报错本质是Bootstrap 5 内置的选择器引擎处理data-bs-parent属性时拿到了非法入参:
- Bootstrap 5的collapse组件在解析
data-bs-parent属性时,要求该属性值必须是合法的CSS选择器字符串,如果传入了DOM对象、jQuery对象、不存在的选择器、非字符串格式的参数,就会导致内部调用原生querySelector方法时传入非法值,抛出该错误。 - 早期Beta版的Bootstrap 5本身存在
data-bs-parent属性的解析bug,也会触发该异常。
修复方案
- 检查所有折叠触发元素上的
data-bs-parent属性值,确保是纯字符串格式的CSS选择器,且该选择器对应的父元素在页面中唯一存在、且添加了accordion类,示例正确写法:<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" data-bs-parent="#accordionExample"> - 如果只是使用独立折叠功能,不需要手风琴联动(即打开一个面板时自动关闭其他面板),直接删除
data-bs-parent属性即可,该属性为联动场景的可选属性,非必填。 - 如果你使用的是Bootstrap 5 Beta测试版本,升级到v5.0.1及以上的正式稳定版本即可解决官方自带的解析bug。
内容的提问来源于stack exchange,提问作者Webkraft Studios
相关产品推荐
相关产品推荐

