新闻中心
使用纯 J*aScript 动态添加 Bootstrap Toggle 开关

本文详细介绍了如何利用纯 j*ascript 动态创建并初始化 bootstrap toggle 开关。通过创建 html `input` 元素,设置必要的 `data` 属性,并结合 jquery 的 `bootstraptoggle()` 方法,可以实现页面上实时添加功能完善的 bootstrap 开关组件,确保其样式和交互行为正常工作。
前言与准备
在现代 Web 开发中,动态生成 UI 组件是常见需求。Bootstrap Toggle 是一个流行的插件,它将标准的 HTML 复选框转换为美观的开关按钮。本文将指导您如何使用纯 J*aScript 动态创建这些开关,并确保它们能够正常工作。
首先,请确保您的项目中已引入必要的 Bootstrap 和 Bootstrap Toggle 库。以下是推荐的 CDN 链接:
<!-- Bootstrap CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <!-- Bootstrap Toggle CSS --> <link href="https://cdn.jsdelivr.net/gh/gitbrent/bootstrap4-toggle@3.6.1/css/bootstrap4-toggle.min.css" rel="stylesheet"> <!-- jQuery (Bootstrap Toggle 依赖 jQuery) --> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <!-- Bootstrap JS --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> <!-- Bootstrap Toggle JS --> <script src="https://cdn.jsdelivr.net/gh/gitbrent/bootstrap4-toggle@3.6.1/js/bootstrap4-toggle.min.js"></script>
HTML 结构:宿主元素
为了动态添加开关,我们需要一个 HTML 容器元素作为它们的宿主。例如,可以在页面中定义一个空的 div:
<div id="switch-host">
<!-- 动态添加的开关将在此处显示 -->
</div>
<button onclick="addSwitchToHost('switch-host')">添加新开关</button>上述代码中,switch-host 是我们的宿主容器,一个按钮用于触发添加新开关的操作。
J*aScript 核心逻辑
动态添加 Bootstrap Toggle 开关的关键在于以下几个步骤:
秀脸FacePlay
一款集成AI换脸、照片跳舞等多种AI特效玩法的App
124
查看详情
- 创建 input 元素:Bootstrap Toggle 插件是基于 input type="checkbox" 工作的。
- 设置必要属性:为 input 元素设置 type="checkbox" 和 data-toggle="toggle"。
- 追加到 DOM:将新创建的 input 元素追加到预设的宿主元素中。
- 初始化 Toggle:这是最关键的一步。仅仅追加 HTML 元素并不会使其成为功能完善的 Bootstrap Toggle 开关。我们需要调用 $(element).bootstrapToggle() 方法来初始化它。
下面是一个实现此功能的 J*aScript 函数示例:
function addSwitchToHost(hostId) {
const host = document.getElementById(hostId);
// 1. 创建 input 元素
const inputEl = document.createElement("input");
// 2. 设置必要属性
inputEl.setAttribute("type", "checkbox");
inputEl.setAttribute("name", "dynamicSwitch_" + Date.now()); // 为每个开关设置唯一名称
inputEl.dataset.toggle = "toggle"; // 等同于 inputEl.setAttribute("data-toggle", "toggle");
// 可以根据需要设置其他属性,例如:
// inputEl.setAttribute("checked", true); // 默认选中
// inputEl.dataset.onstyle = "primary"; // 开启状态样式
// inputEl.dataset.offstyle = "secondary"; // 关闭状态样式
// inputEl.dataset.on = "激活"; // 开启状态文本
// inputEl.dataset.off = "关闭"; // 关闭状态文本
// 3. 追加到 DOM
host.appendChild(inputEl);
// 4. 初始化 Bootstrap Toggle
// 注意:Bootstrap Toggle 依赖 jQuery,所以这里使用 $()
$(inputEl).bootstrapToggle();
}完整示例
将上述 HTML 和 J*aScript 代码结合起来,您将得到一个完整的、可运行的示例:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>动态添加 Bootstrap Toggle 开关</title> <!-- Bootstrap CSS --> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/css/bootstrap.min.css" integrity="sha384-xOolHFLEh07PJGoPkLv1IbcEPTNtaed2xpHsD9ESMhqIYd0nLMwNLD69Npy4HI+N" crossorigin="anonymous"> <!-- Bootstrap Toggle CSS --> <link href="https://cdn.jsdelivr.net/gh/gitbrent/bootstrap4-toggle@3.6.1/css/bootstrap4-toggle.min.css" rel="stylesheet"> </head> <body> <div class="container mt-5"> <h1>动态 Bootstrap Toggle 开关示例</h1> <div id="switch-host" class="mb-3"> <!-- 动态添加的开关将在此处显示 --> </div> <button class="btn btn-primary" onclick="addSwitchToHost('switch-host')">添加新开关</button> </div> <!-- jQuery (Bootstrap Toggle 依赖 jQuery) --> <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <!-- Bootstrap JS --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> <!-- Bootstrap Toggle JS --> <script src="https://cdn.jsdelivr.net/gh/gitbrent/bootstrap4-toggle@3.6.1/js/bootstrap4-toggle.min.js"></script> <script> function addSwitchToHost(hostId) { const host = document.getElementById(hostId); const inputEl = document.createElement("input"); inputEl.setAttribute("type", "checkbox"); inputEl.setAttribute("name", "dynamicSwitch_" + Date.now()); inputEl.dataset.toggle = "toggle"; inputEl.dataset.onstyle = "success"; // 设置开启样式为绿色 inputEl.dataset.offstyle = "danger"; // 设置关闭样式为红色 inputEl.dataset.on = "启用"; inputEl.dataset.off = "禁用"; host.appendChild(inputEl); // 初始化 Bootstrap Toggle $(inputEl).bootstrapToggle(); } </script> </body> </html>
注意事项与总结
- jQuery 依赖:Bootstrap Toggle 插件是基于 jQuery 构建的。因此,在动态添加和初始化开关之前,请务必确保页面已正确引入 jQuery 库。
- 初始化是关键:仅仅创建 input 元素并设置 data-toggle="toggle" 属性是不够的。Bootstrap Toggle 插件需要通过 J*aScript 代码(即 $(element).bootstrapToggle())来扫描 DOM 并将其转换为可视化的开关组件。对于动态添加的元素,必须在它们被添加到 DOM 之后 手动调用此初始化方法。
- 属性设置:可以通过 setAttribute() 方法或直接使用 dataset 属性来设置 data-* 属性,例如 inputEl.dataset.toggle = "toggle"。这些属性可以控制开关的默认状态、样式和文本。
- 唯一 ID/名称:如果需要对每个动态生成的开关进行独立操作或表单提交,建议为它们设置唯一的 id 或 name 属性。
通过遵循上述步骤和注意事项,您可以灵活地在任何 Web 应用程序中动态生成和管理 Bootstrap Toggle 开关,从而增强用户界面的交互性和动态性。
以上就是使用纯 J*aScript 动态添加 Bootstrap Toggle 开关的详细内容,更多请关注其它相关文章!
# 转换为
# 江苏seo服务方法
# 四川seo技巧打造
# 页游网站如何推广
# 平台营销推广案例分享会
# 太原网站建设详细方案
# 徐州网站搜索优化工作室
# 寿光商城网站建设
# 东营大型网站建设推广
# 商务旅游营销推广
# 昌邑区网站建设价格
# 是基于
# 容器内
# 您的
# 这是
# 拖拽
# css
# 自定义
# 将在
# 是一个
# 复选框
# app
# npm
# go
# git
# bootstrap
# js
# html
# jquery
# java
# javascript
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
一加Ace 6T支持全新明眸护眼:通过了最严苛的护眼小金标认证
CSS子选择器:如何区分并样式化嵌套列表的子层级
顺丰快递查单号物流信息 顺丰快递小程序查询入口
AO3官网镜像链接 Archive of Our Own同人文在线浏览
2026年发布! 美少女养成动作RPG《神剑少女战记》发布实机演示
微信语音通话掉线如何解决 微信语音通话稳定优化方法
12306选座怎么选到临时改签座_12306改签选座策略与步骤
随机参数递归函数的基准调用次数与时间复杂度探究
解决Flask中Quill编辑器内容提交失败及TypeError的指南
c++中的std::launder有什么实际用途_c++对象生命周期与指针优化
React Router 嵌套组件中 URL 重定向问题的解决方案
ExcelARRAYTOTEXT函数怎么自定义分隔符输出数组文本_ARRAYTOTEXT实现动态生成SQL语句
豆包手机助手发布技术预览版:直接嵌入手机系统!努比亚样机发售
谷歌浏览器浏览体验优化_谷歌浏览器新版直连永久可用提示
c++如何使用Meson构建系统_c++比CMake更快的构建工具
J*a最大堆Heapify方法修复:索引计算与边界条件深度解析
qq音乐在线播放入口_qq音乐电脑版登录链接
2025年云电脑操作系统体验 | 无需本地硬件,随时随地使用高性能PC
msn官网入口地址手机版 msn官方网站手机最新链接
win11专注助手在哪 Win11免打扰模式设置与自动化规则【指南】
将JSON对象数组转置为键值对列表的实用指南
composer的"require-dev"部分是用来做什么的?
在J*aScript中复现SciPy的B样条拟合与求值:关键考量
在Qt QML中通过Python字典动态更新TextEdit内容的教程
2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析
sublime如何配置Go语言开发环境_sublime搭建Golang编译运行系统
Go语言中JSON数据解码与字段访问指南
纯CSS与HTML网格布局的HTML精简策略:SVG与JS方案解析
解决移动端滚动问题的overflow属性应用指南
C++如何打印当前代码行号与文件名_C++预定义宏FILE与LINE的使用
微信聊天记录怎么加密_微信聊天记录加密方法
如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略
Python实现多节点属性重叠度分析教程
内存检查:在VS Code中调试C++时的内存视图
优化Log4j2控制台输出性能:解决异步日志瓶颈
PyTorch模型训练效果不佳?深入剖析常见错误与调试技巧
电脑IP地址怎么查 查看本机IP地址的几种方法
Promise错误处理:在catch后终止链式then执行的策略
必由学官方网站入口 必由学学生教师共用登录通道
Win10如何开启蓝牙功能_Windows10找不到蓝牙开关解决方法
UE5.7引擎表现爆炸优化无敌!5090跑4K稳定60FPS
支付宝如何设置安全保护_支付宝安全设置的全面教程
机器学习中对数变换预测结果的反向还原
MAC如何安全彻底地删除文件_MAC使用终端命令确保文件无法被恢复
怎样使用“本地安全策略”提升Windows安全性_Secpol.msc配置指南【高手】
Yandex免登录官网入口_俄罗斯Yandex搜索引擎直达链接
sublime怎么进行远程开发编辑_配置rsub/rmate实现sublime编辑服务器文件
Composer的 archive 命令怎么用_快速打包你的PHP项目及其Composer依赖
Highcharts 雷达图径向轴标签定制指南:利用多Y轴实现数值标注
PHP中获取MongoDB服务器运行时间(Uptime)的专业指南


2025-10-13
浏览次数:次
返回列表
.css" rel="stylesheet">
</head>
<body>
<div class="container mt-5">
<h1>动态 Bootstrap Toggle 开关示例</h1>
<div id="switch-host" class="mb-3">
<!-- 动态添加的开关将在此处显示 -->
</div>
<button class="btn btn-primary" onclick="addSwitchToHost('switch-host')">添加新开关</button>
</div>
<!-- jQuery (Bootstrap Toggle 依赖 jQuery) -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<!-- Bootstrap JS -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script>
<!-- Bootstrap Toggle JS -->
<script src="https://cdn.jsdelivr.net/gh/gitbrent/bootstrap4-toggle@3.6.1/js/bootstrap4-toggle.min.js"></script>
<script>
function addSwitchToHost(hostId) {
const host = document.getElementById(hostId);
const inputEl = document.createElement("input");
inputEl.setAttribute("type", "checkbox");
inputEl.setAttribute("name", "dynamicSwitch_" + Date.now());
inputEl.dataset.toggle = "toggle";
inputEl.dataset.onstyle = "success"; // 设置开启样式为绿色
inputEl.dataset.offstyle = "danger"; // 设置关闭样式为红色
inputEl.dataset.on = "启用";
inputEl.dataset.off = "禁用";
host.appendChild(inputEl);
// 初始化 Bootstrap Toggle
$(inputEl).bootstrapToggle();
}
</script>
</body>
</html>