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 相关文章推荐
云网广告中的代码,提示出错,大家找找
Nov 21 Javascript
基于jquery实现的可编辑下拉框实现代码
Aug 02 Javascript
JS数字抽奖游戏实现方法
May 04 Javascript
jquery实现表格中点击相应行变色功能效果【实例代码】
May 09 Javascript
js注入 黑客之路必备!
Sep 14 Javascript
Webpack+Vue如何导入Jquery和Jquery的第三方插件
Feb 20 Javascript
Vue的elementUI实现自定义主题方法
Feb 23 Javascript
vue router动态路由下让每个子路由都是独立组件的解决方案
Apr 24 Javascript
实例详解Vue项目使用eslint + prettier规范代码风格
Aug 20 Javascript
通过npm或yarn自动生成vue组件的方法示例
Feb 12 Javascript
继承行为在 ES5 与 ES6 中的区别详解
Dec 24 Javascript
Electron实现应用打包、自动升级过程解析
Jul 07 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/07/29 PHP
ThinkPHP表单自动验证实例
2014/10/13 PHP
php实现网页缓存的工具类分享
2015/07/14 PHP
php while循环控制的简单实例
2016/05/30 PHP
IE之动态添加DOM节点触发window.resize事件
2010/07/27 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
如何在JS中实现相互转换XML和JSON
2016/07/19 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
Highcharts+NodeJS搭建数据可视化平台示例
2017/01/01 NodeJs
NodeJs使用Mysql模块实现事务处理实例
2017/05/31 NodeJs
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
微信小程序云开发获取文件夹下所有文件(推荐)
2019/11/14 Javascript
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
Python的print用法示例
2014/02/11 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
python开头的coding设置方法
2019/08/08 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
keras做CNN的训练误差loss的下降操作
2020/06/22 Python
Python自省及反射原理实例详解
2020/07/06 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
python list等分并从等分的子集中随机选取一个数
2020/11/16 Python
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
Proenza Schouler官方网站:纽约女装和配饰品牌
2019/01/03 全球购物
教师网络培训感言
2014/03/09 职场文书
父母对孩子的寄语
2014/04/09 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
施工安全保证书
2015/05/09 职场文书
老员工辞职信范文
2015/05/12 职场文书
小学体育教学随笔
2015/08/14 职场文书
从np.random.normal()到正态分布的拟合操作
2021/06/02 Python
世界十大动漫制作公司排行榜,迪士尼上榜,第二是美国代表性文化符
2022/03/18 欧美动漫