Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法


Posted in Javascript onJuly 09, 2017

摘要: 前端框架 Bootstrap 的模态对话框,可以使用 remote 选项指定一个 URL,这样对话框在第一次弹出的时候就会自动从这个地址加载数据到 .modal-body 中,但是它只会加载一次,不过通过在事件中调用 removeData() 方法可以解决这个问题。

1. Bootstrap 模态对话框和简单使用

<div id="myModal" class="modal hide fade">
 <div class="modal-header">
  <button type="button" class="close" data-dismiss="modal">x</button>
  <h3>对话框标题</h3>
 </div>
 <div class="modal-body">
  <p>对话框主体</p>
 </div>
 <div class="modal-footer">
  <a href="#" rel="external nofollow" rel="external nofollow" class="btn" data-dismiss="modal">取消</a>
  <a href="#" rel="external nofollow" rel="external nofollow" class="btn btn-primary" data-dismiss="modal">确定</a>
 </div>
</div>

显示效果与下图相似:

Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法

可以使用按钮或链接直接调用模态对话框,这是简单的用法:

<button type="button" data-toggle="modal" data-target="#myModal">打开对话框</button>
<a href="#myModal" rel="external nofollow" role="button" class="btn" data-toggle="modal">打开对话框</button>

这样只能把静态内容在对话框中显示出来,使用对话框的 remote 选项可以实现更强大的效果。

2. 使用 remote 选项让模态对话框加载页面到 .modal-body 中

有两种方法,一种是使用链接,另一种就是使用脚本。

2.1 使用链接

<a href="page.jsp" rel="external nofollow" data-toggle="modal" data-target="#myModal">打开对话框</a>

当点击此链接时,page.jsp 的内容会被加载到对话框的 .modal-body 中,随即显示对话框。

2.2 使用脚本

$("#myModal").modal({
 remote: "page.jsp"
});

这段脚本的效果和使用链接是一样的,当这段脚本执行后,page.jsp 的内容会被加载到对话框的 .modal-body 中,随即显示对话框。

这两种方法的背后,都是 Bootstrap 调用了 jQuery 的 load() 方法,从服务器端加载了 page.jsp 页面。但这个加载只会发生一次,后面不管你点击几次链接,或者执行几次脚本,哪怕改变传递给 remote 选项的值,对话框都不会重新加载页面,这真是个让人头疼的事情。不过问题还是能够解决的。

3. 移除数据,让对话框能够在每次打开时重新加载页面

在搜索并查阅了相关文档后,发现在对话框的 hidden 事件里写上一条语句就可以了:

$("#myModal").on("hidden", function() {
 $(this).removeData("modal");
});

也可以在每次打开对话框之前移除数据,效果是一样的。

注:上面的代码基于 Bootstrap v2,如果使用 Bootstrape v3,模态对话框的 HTML 和事件的写法有一些不同,例如对于上面的 hidden 事件,要写成:

$("#myModal").on("hidden.bs.modal", function() {
 $(this).removeData("bs.modal");
});

以上所述是小编给大家介绍的Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
JavaScript 学习笔记 Black.Caffeine 09.11.28
Nov 30 Javascript
php析构函数的具体用法小结
Mar 11 Javascript
高性能JavaScript模板引擎实现原理详解
Feb 05 Javascript
用angular实现多选按钮的全选与反选实例代码
May 23 Javascript
AngularJS ionic手势事件的使用总结
Aug 09 Javascript
layui问题之模拟select点击事件的实例讲解
Aug 15 Javascript
解决vue单页路由跳转后scrollTop的问题
Sep 03 Javascript
如何在基于vue-cli的项目自定义打包环境
Nov 10 Javascript
vue请求本地自己编写的json文件的方法
Apr 25 Javascript
JavaScript使用面向对象实现的拖拽功能详解
Jun 12 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
Dec 06 Javascript
JavaScript实现公告栏上下滚动效果
Mar 13 Javascript
收藏AngularJS中最重要的核心功能
Jul 09 #Javascript
Bootstrap Multiselect 常用组件实现代码
Jul 09 #Javascript
解决JS外部文件中文注释出现乱码问题
Jul 09 #Javascript
JavaScrpt中如何使用 cookie 设置查看与删除功能
Jul 09 #Javascript
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
Jul 08 #jQuery
jQuery制作全屏宽度固定高度轮播图(实例讲解)
Jul 08 #jQuery
详谈javascript精度问题与调整
Jul 08 #Javascript
You might like
php判断字符以及字符串的包含方法属性
2008/08/30 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
2015/10/10 PHP
PHP使用trim函数去除字符串左右空格及特殊字符实例
2016/01/07 PHP
php is_writable判断文件是否可写实例代码
2016/10/13 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
PHP如何实现订单的延时处理详解
2017/12/30 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
JQuery动画和停止动画实例代码
2013/03/01 Javascript
js open() 与showModalDialog()方法使用介绍
2013/09/10 Javascript
使用javascript实现页面定时跳转总结篇
2013/09/21 Javascript
js 动态为textbox添加下拉框数据源的方法
2014/04/24 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
简介JavaScript中search()方法的使用
2015/06/06 Javascript
详解JavaScript的AngularJS框架中的表达式与指令
2016/03/05 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
详解Angular路由 ng-route和ui-router的区别
2017/05/22 Javascript
javascript实现文字无缝滚动效果
2017/08/26 Javascript
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
Python下线程之间的共享和释放示例
2015/05/04 Python
在Python中使用next()方法操作文件的教程
2015/05/24 Python
python实现求最长回文子串长度
2018/01/22 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
python 调整图片亮度的示例
2020/12/03 Python
Python 图片处理库exifread详解
2021/02/25 Python
html5各种页面切换效果和模态对话框用法总结
2014/12/15 HTML / CSS
南非最大的花卉和送礼服务:NetFlorist
2017/09/13 全球购物
bareMinerals官网:矿物质化妆品和护肤品
2018/02/04 全球购物
平安工地建设方案
2014/05/06 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
七年级作文之《我和我的祖国》观后感作文
2019/10/18 职场文书