Bootstrap modal只加载一次数据的解决办法(推荐)


Posted in Javascript onNovember 24, 2017

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>

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

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

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 modal只加载一次数据的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
FF火狐下获取一个元素同类型的相邻元素实现代码
Dec 15 Javascript
浅析return false的正确使用
Nov 04 Javascript
动态添加删除表格行的js实现代码
Feb 28 Javascript
jQuery中:text选择器用法实例
Jan 03 Javascript
javascript最基本的函数汇总
Jun 25 Javascript
JS版元素周期表实现方法
Aug 05 Javascript
js实现四舍五入完全保留两位小数的方法
Aug 02 Javascript
js实现旋转木马效果
Mar 17 Javascript
使用AngularJS对表单提交内容进行验证的操作方法
Jul 12 Javascript
node+vue实现用户注册和头像上传的实例代码
Jul 20 Javascript
解决vue.js提交数组时出现数组下标的问题
Nov 05 Javascript
JavaScript实现跟随鼠标移动的盒子
Jan 28 Javascript
浅谈vue-cli加载不到dev-server.js的解决办法
Nov 24 #Javascript
浅谈Angular文字折叠展开组件的原理分析
Nov 24 #Javascript
vue 文件目录结构详解
Nov 24 #Javascript
获取本机IP地址的实例(JavaScript / Node.js)
Nov 24 #Javascript
js判断数组是否包含某个字符串变量的实例
Nov 24 #Javascript
最新Javascript程序员面试试题和解题方法
Nov 23 #Javascript
详解bootstrap导航栏.nav与.navbar区别
Nov 23 #Javascript
You might like
《星际争霸II》全新指挥官斯台特曼现已上线
2020/03/08 星际争霸
PHP生成压缩文件实例
2015/02/07 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
php操作memcache缓存方法分享
2015/06/03 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
yii2中关于加密解密的那些事儿
2018/06/12 PHP
用JS实现的一个include函数
2007/07/21 Javascript
javascript IFrame 强制刷新代码
2009/07/23 Javascript
jquery isType() 类型判断代码
2011/02/14 Javascript
基于jquery实现图片广告轮换效果代码
2011/07/07 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
Javascript实现滑块滑动改变值的实现代码
2013/04/12 Javascript
动态改变div的z-index属性的简单实例
2013/08/08 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
微信小程序实现滑动切换自定义页码的方法分析
2018/12/29 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
详解JavaScript作用域和作用域链
2019/03/19 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
Vue切换Tab动态渲染组件的操作
2020/09/21 Javascript
JavaScript实现随机点名小程序
2020/10/29 Javascript
Python的ORM框架SQLObject入门实例
2014/04/28 Python
wxPython学习之主框架实例
2014/09/28 Python
python PyTorch参数初始化和Finetune
2018/02/11 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
Django框架获取form表单数据方式总结
2020/04/22 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
酒店节能减排方案
2014/05/26 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
超强台风观后感
2015/06/09 职场文书
Go语言grpc和protobuf
2022/04/13 Golang