讲师中心 微信公众号

工具推荐

视频效率加速
AniShort
AniShort

AI短剧协同制作平台

立刻MV
立刻MV

低成本歌曲 MV、视频生成

Laper
Laper

剧本策划到成片协作

剧云
剧云

中文短剧剧本制作平台

Bootstrap原生JavaScript怎么调用

夜丽大大_6335

夜丽大大_6335

发布时间:2026-11-10 06:34:21

|

998人浏览过

|

来源于php中文网

原创

Bootstrap 5 彻底移除 jQuery 依赖,JS 插件必须用原生 DOM 操作和 ES6 类(如 bootstrap.Modal)显式初始化,支持 data-bs-* 自动初始化或 ESM 按需导入,但要求 bootstrap.bundle.min.js 加载完成、DOM 就绪、属性前缀正确且元素存在。

bootstrap原生javascript怎么调用

Bootstrap 5 的 JavaScript 插件不再依赖 jQuery,调用方式从 $().modal() 这类链式调用,彻底转向原生 DOM 操作 + ES6 类实例化。如果你在控制台看到 ReferenceError: $ is not defined 或者 modal is not a function,基本可以确定你正处在纯原生 JS 环境下,且没走对初始化路径。

data-bs-* 属性自动初始化(适合静态页面)

这是最轻量、无需写 JS 就能用上模态框、下拉菜单等组件的方式,但只对初始就存在于 DOM 中的元素生效。

  • 必须引入 bootstrap.bundle.min.js(含 Popper),不能只引 bootstrap.min.js
  • 属性前缀必须是 data-bs-,比如 data-bs-toggle="modal",旧的 data-toggle 会静默失效
  • 目标元素 ID 必须匹配 data-bs-target 值,且容器要有 .modal、.dropdown-menu 等对应类名
  • 动态插入的 HTML(如通过 innerHTML 或 fetch 加载)不会被自动扫描,得手动初始化

ES 模块按需导入并 new 实例(推荐用于现代构建项目)

Webpack/Vite 等打包器下,直接 import 组件类比全局 script 更可控,也利于 tree-shaking。

  • 确保已安装 @popperjs/core 和 bootstrap@^5.3.0,低版本可能缺少 bootstrap.esm.js
  • 导入语句要写全:例如 import { Modal, Tooltip } from 'bootstrap';,不是 import bootstrap from 'bootstrap'
  • 构造函数参数必须是真实 DOM 元素,document.getElementById('xxx') 返回 null 时会报错,建议加判断
  • 事件监听需显式绑定:myModal.addEventListener('shown.bs.modal', () => {...}),事件名带 bs. 命名空间

手动调用 Bootstrap 对象方法(兼容旧代码迁移)

如果你沿用 Bootstrap 4 的思路,想保留类似 bootstrap.Modal.getInstance(el) 这种写法,它依然可用,但前提是全局 bootstrap 对象存在。

Java调试
Java调试

通过 JDWP 实现 Java 远程调试:连接远程 JVM、设置断点、单步执行代码、查看变量值、获取调用栈。适用于需要调试远程 Java 应用、排查运行时状态、追踪代码执行流程的场景。 术语注解 JDWP:Java Debug Wire Protocol,Java 调试有线协议(Java 远程调试底层通信协议) remote JVM:远程 Java 虚拟机 step through code:代码单步调试(步入 / 步过 / 步出调试) inspect variables:变量查看 / 变量检视 stac

下载

立即学习“Java免费学习笔记(深入)”;

  • 引入 bootstrap.bundle.min.js 后,全局会挂载 window.bootstrap,提供 Modal、Dropdown 等类和 getInstance 工具方法
  • bootstrap.Modal.getOrCreateInstance(el, options) 可避免重复初始化,比直接 new Modal(el) 更安全
  • bootstrap.Toast 等组件不支持 data 属性自动触发,必须手动 new 或用 getOrCreateInstance
  • 注意:该对象仅在 script 标签引入模式下存在;ESM 导入后,window.bootstrap 不会出现

常见错误:popover / tooltip 不显示或闪退

这类组件高度依赖 Popper 定位引擎,原生 JS 下出问题大概率不是逻辑错,而是配置或时机问题。

  • 必须确保触发元素存在且已挂载到 DOM,DOMContentLoaded 后再初始化,或用 document.addEventListener('DOMContentLoaded', ...)
  • data-bs-trigger="hover focus" 在触摸设备上可能异常,建议生产环境统一用 click
  • 内容为空(data-bs-content="" 或 title="")会导致初始化失败,控制台可能无提示
  • 若用 new Tooltip(el),el 必须是原生元素,不能是 jQuery 对象或字符串选择器

最易被忽略的一点:Bootstrap 5 的所有 JS 组件都默认启用 CSS 过渡(transition),如果自定义样式里写了 transition: none 或重置了 opacity/transform,动画会卡住甚至功能异常——这不是 JS 错误,但会让调试陷入僵局。

热门AI工具

更多
二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

讯飞智文

一款面向学习和办公场景的AI文档创作工具,可辅助生成PPT与Word文档,提高资料整理和内容制作效率。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

码上飞
码上飞 Hot

一款基于自然语言的AI应用开发平台,可根据用户描述自动生成应用程序,帮助个人和团队快速完成应用原型与开发。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2923

2023.08.11

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

6383

2023.10.09

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

7270

2024.03.19

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

7138

2024.03.22

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

1023

2024.05.22

js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

5746

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

1389

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

5664

2023.07.04

Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

40

2026.11.06

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 入门安装配置
Bootstrap 入门安装配置

共0课时 | 0人学习

第三期培训_前端基础
第三期培训_前端基础

共119课时 | 39万人学习

第四期_前端基础
第四期_前端基础

共63课时 | 15万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn