为什么Bootstrap 5移除了jQuery_探讨原生JS与CSS动画如何替代旧交互

大雪君_4844

大雪君_4844

2026-04-15

957人浏览

原创

Bootstrap 5 报 TypeError: $ is not a function 是因彻底移除 jQuery 依赖,需删除 jQuery 引入、改用原生 API 初始化组件(如 new bootstrap.Modal())、动态元素需手动初始化,并用 CSS transition 替代 jQuery 动画。

为什么bootstrap 5移除了jquery_探讨原生js与css动画如何替代旧交互

Bootstrap 5 报 TypeError: $ is not a function 怎么办

因为 Bootstrap 5 彻底删掉了 jQuery 依赖,所有 JS 组件(Modal、Dropdown、Toast 等)都重写为原生 DOM API + ES6+ 类。只要代码里还留着 $().modal('show') 或 $('.dropdown').dropdown(),浏览器就直接报这个错。

实操建议:

  • 删掉项目中所有 jquery.min.js 或 jquery.slim.js 的引入(除非其他插件强依赖)
  • 确保 Bootstrap 5 的 JS 文件(如 bootstrap.bundle.min.js)已正确加载,且在你的自定义脚本之前执行
  • 把旧写法逐个替换:比如 $('#myModal').modal('show') → new bootstrap.Modal(document.getElementById('myModal')).show()
  • 注意全局对象名是 bootstrap(小写),不是 Bootstrap 或 BS

data-bs-toggle 还能用吗?为什么动态插入的 HTML 不生效

能用,但只对「页面加载时已存在的元素」自动初始化。Bootstrap 5 启动时会扫描 DOM,匹配 data-bs-toggle="modal" 这类属性并调用对应构造器 —— 这个过程只跑一次。

常见错误现象:

  • 用 innerHTML 或 insertAdjacentHTML 动态加了个带 data-bs-toggle="dropdown" 的按钮,点不动
  • Vue/React 渲染后组件没反应,控制台也没报错

原因很简单:Bootstrap 不监听 DOM 变化,也不会劫持 innerHTML。它不提供 MutationObserver 自动补救。

实操建议:

  • 动态插入后,手动初始化:例如 const dropdownEl = document.querySelector('.my-dynamic-dropdown'); new bootstrap.Dropdown(dropdownEl);
  • 避免混用:不要一边写 data-bs-toggle,一边又 new bootstrap.Dropdown(...),否则事件监听可能重复绑定
  • 确认元素存在再初始化:if (dropdownEl) { new bootstrap.Dropdown(dropdownEl); }

原生 JS 替代 jQuery 的关键操作有哪些

不是简单改函数名,而是整套交互范式变了。核心替换点集中在 DOM 查询、事件绑定、类名操作和动画触发上。

arcgis-js
arcgis-js

提供 ArcGIS Maps SDK for JavaScript 开发辅助,涵盖 2D/3D 地图视图、图层管理、数据可视化、空间分析等功能模块的参考和示例指导。

下载

常见对比与注意事项:

  • $('.btn') → document.querySelectorAll('.btn')(返回 NodeList,不是数组,需 [...] 展开或用 forEach)
  • $(el).on('click', handler) → el.addEventListener('click', handler)(注意:事件目标是元素本身,不是 jQuery 对象)
  • $(el).addClass('active') → el.classList.add('active')(classList 是原生 API,支持 toggle/replace)
  • 动画不再靠 .fadeIn(),而是靠 CSS transition + 切换类,比如 el.classList.add('fade-in') 配合 .fade-in { opacity: 1; transition: opacity .15s; }

性能影响:原生操作更快,内存占用更低,但需要自己处理 IE 兼容性(Bootstrap 5 已不支持 IE)。

为什么 CSS 动画 + transition 能替代 jQuery 的 fadeIn/slideToggle

因为 Bootstrap 5 的所有过渡效果(模态框淡入、下拉菜单展开、提示框滑出)全部基于 CSS transition 和 @keyframes 实现,JS 只负责添加/移除类,不操纵内联样式或定时器。

这样做的好处:

  • 硬件加速更稳定(尤其是 opacity、transform)
  • JS 主线程不卡顿,动画帧率更可靠
  • 可被浏览器 DevTools 的「Animations」面板直接调试

容易踩的坑:

  • 忘记给元素设初始状态:比如 .fade 类默认 opacity: 0,但若没写 transition: opacity .15s,就不会有淡入效果
  • 用 display: none 配合 transition 无效 —— display 不支持过渡,得用 visibility + opacity 或 max-height
  • 手动调用 modal.show() 后,如果 CSS 中 .modal.fade .modal-dialog 缺少 transition,动画就变成硬切

最常被忽略的一点:Bootstrap 5 的动画类(如 .fade、.show)必须和对应结构配合使用,单独加类不会触发完整行为 —— 它们只是 CSS 钩子,背后依赖 JS 控制类的增删时机。

前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!

相关专题

更多
css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.15

5356

6

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

2023.07.27

1157

5

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

2023.07.28

2018

6

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

2023.08.01

4066

7

css字体颜色
css字体颜色

CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

2023.08.10

8465

11

什么是css
什么是css

CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

2023.08.10

7171

7

css三角形怎么写
css三角形怎么写

CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

2023.08.21

2357

9

css设置文字颜色
css设置文字颜色

CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

2023.08.22

3431

5

css禁止点击事件
css禁止点击事件

实现css禁止点击事件的方法有使用CSS的pointer-events属性和使用JavaScript禁用点击事件。本专题为大家提供点击事件相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

3033

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 1.6万人学习