基于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 相关文章推荐
js如何设置在iframe框架中指定div不显示
Dec 04 Javascript
js重写alert控件(适合学习js的新手朋友)
Aug 24 Javascript
用Jquery.load载入页面后样式没了页面混乱的解决方法
Oct 20 Javascript
javascript的push使用指南
Dec 05 Javascript
jquery原理以及学习技巧介绍
Nov 11 Javascript
AngularJS入门教程之AngularJS表达式
Apr 18 Javascript
再谈Javascript中的异步以及如何异步
Aug 19 Javascript
Bootstrap中datetimepicker使用小结
Dec 28 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
Dec 11 Javascript
JavaScript实现的简单加密解密操作示例
Jun 01 Javascript
vue在手机中通过本机IP地址访问webApp的方法
Aug 15 Javascript
解决layui表格内文本超出隐藏的问题
Sep 12 Javascript
详谈AngularJs 控制器、数据绑定、作用域
Jul 09 #Javascript
vue子父组件通信的实现代码
Jul 09 #Javascript
vue2中filter()的实现代码
Jul 09 #Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
Jul 09 #Javascript
收藏AngularJS中最重要的核心功能
Jul 09 #Javascript
Bootstrap Multiselect 常用组件实现代码
Jul 09 #Javascript
解决JS外部文件中文注释出现乱码问题
Jul 09 #Javascript
You might like
基于PHP中的常用函数回顾
2013/07/11 PHP
非常实用的PHP常用函数汇总
2014/12/17 PHP
Laravel下生成验证码的类
2017/11/15 PHP
PHP依赖注入原理与用法分析
2018/08/21 PHP
关于Anemometer图形化显示MySQL慢日志的工具搭建及使用的详细介绍
2020/07/13 PHP
在html页面上拖放移动标签
2010/01/08 Javascript
javascript之querySelector和querySelectorAll使用介绍
2011/12/20 Javascript
JavaScript通过正则表达式实现表单验证电话号码
2014/03/07 Javascript
javascript中数组array及string的方法总结
2014/11/28 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
jquery中one()方法的用法实例
2015/01/16 Javascript
IE6兼容透明背景图片及解决方案
2015/08/19 Javascript
jquery实现页面常用的返回顶部效果
2016/03/04 Javascript
详解vue与后端数据交互(ajax):vue-resource
2017/03/16 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
vuex的简单使用教程
2018/02/02 Javascript
在vue-cli搭建的项目中增加后台mock接口的方法
2018/04/26 Javascript
vue-cli的工程模板与构建工具详解
2018/09/27 Javascript
vue组件实践之可搜索下拉框功能
2018/11/25 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
JS数组的高级使用方法示例小结
2020/03/14 Javascript
Vue 封装防刷新考试倒计时组件的实现
2020/06/05 Javascript
对于Python中线程问题的简单讲解
2015/04/03 Python
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
Python实现向服务器请求压缩数据及解压缩数据的方法示例
2017/06/09 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
python实现递归查找某个路径下所有文件中的中文字符
2019/08/31 Python
关于毕业的广播稿
2014/01/10 职场文书
电大会计学自我鉴定
2014/02/06 职场文书
自我鉴定书
2014/03/24 职场文书
空气环保标语
2014/06/12 职场文书
中国梦团日活动总结
2014/07/07 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
教师继续教育反思周记
2015/06/25 职场文书
AI:如何训练机器学习的模型
2021/04/16 Python
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python