详解bootstrap的modal-remote两种加载方式【强化】


Posted in Javascript onJanuary 27, 2017

方法一:

使用链接

<a href="demo.jsp" data-toggle="modal" data-target="#mymodal">打开</a>

当点击该连接时,demo.jsp的内容就可以动态的加载到<div class="modal-content"></div>中。当然这里的连接也可以是controller

方法二:

使用脚本

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

但是这样加载后,会有问题,modal数据只加载一次,如果要加载不同的数据,例如根据id查询详细信息,modal的数据是不能更新的,即使传的id值不同。其实解决办法很简单,只需要在加载下次数据前,将之前的加载的数据清除即可。

最简单的方式就是监听modal的hidden,当modal关闭时,即把数据清除即可:

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

问题来了:如果在请求的页面中有$()加载事件加载比如boostrap-validator或者boostrap-fileinput等插件会出现奇怪的现象,第一次正常执行,关掉modal,第二次,$()的代码没有执行,第三次能执行;经过反复发现“hidden.bs.modal”监听每次都执行了,但是加载到<div class="modal-content"></div>里面的数据没有被清除,可能是这个原因导致的这种现象,于是改成如下代码:

$("#myModal").on("hidden.bs.modal", function() {  
  $(this).removeData("bs.modal"); 
  /*modal页面加载$()错误,由于移除缓存时加载到<span style="color: rgb(51, 51, 255);"><div class="modal-content"></div></span>未移除的数据,手动移除加载的内容*/ 
  $(this).find(".modal-content").children().remove();  
});

如此这样问题解决了!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
ExtJS的FieldSet的column列布局
Nov 20 Javascript
jquery 年会抽奖程序
Dec 22 Javascript
js实现的动画导航菜单效果代码
Sep 10 Javascript
使用 stylelint检查CSS_StyleLint
Apr 28 Javascript
JavaScript递归操作实例浅析
Oct 31 Javascript
ztree简介_动力节点Java学院整理
Jul 19 Javascript
详解Vue+axios+Node+express实现文件上传(用户头像上传)
Aug 10 Javascript
Vue中 key keep-alive的实现原理
Sep 18 Javascript
node中实现删除目录的几种方法
Jun 24 Javascript
JavaScript获取某一天所在的星期
Sep 05 Javascript
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
vue 计算属性和侦听器的使用小结
Jan 25 Vue.js
Jquery uploadify 多余的Get请求(404错误)的解决方法
Jan 26 #Javascript
js监听input输入框值的实时变化实例
Jan 26 #Javascript
jquery实现input框获取焦点的简单实例
Jan 26 #Javascript
jquery 实时监听输入框值变化的完美方法(必看)
Jan 26 #Javascript
Jquery实时监听input value的实例
Jan 26 #Javascript
jquery实时获取时间的简单实例
Jan 26 #Javascript
微信小程序实现图片自适应(支持多图)
Jan 25 #Javascript
You might like
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
PHP addAttribute()函数讲解
2019/02/03 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
Laravel框架数据库迁移操作实例详解
2020/04/06 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
2017/01/04 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
深入理解ES6的迭代器与生成器
2017/08/19 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
vue axios重复点击取消上一次请求封装的方法
2019/06/19 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
python批量同步web服务器代码核心程序
2014/09/01 Python
利用Python实现命令行版的火车票查看器
2016/08/05 Python
python数据类型_字符串常用操作(详解)
2017/05/30 Python
Python下利用BeautifulSoup解析HTML的实现
2020/01/17 Python
英国最大的经认证的有机超市:Planet Organic
2018/02/02 全球购物
英国最受欢迎的价格比较网站之一:MoneySuperMarket
2018/12/19 全球购物
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
大学四年的个人自我评价
2014/01/14 职场文书
商务英语广告词大全
2014/03/18 职场文书
人事任命书格式
2014/06/05 职场文书
人事专员岗位说明书
2014/07/29 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android