扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框


Posted in Javascript onFebruary 21, 2017

js代码

function initView(_box){ 
  var $p = $(_box || document); 
  $('a[target="dialog"]', $p).each(function(event){ 
    $(this, $p).unbind('click').click(function(event){ 
      openModal(event); 
    }); 
  }); 
} 
$(function(){ 
  initView(); 
}); 
/**关闭modal*/ 
function hideModal(obj){ 
  var modal = $(obj).parents("div.modal"); 
  if(modal.length > 0){ 
    modal.remove(); 
    initView(); 
  } 
} 
/**打开modal*/ 
function openModal(event){ 
// var this = $(this); 
  var $this = $(event.currentTarget); 
  var _url = $this.attr("href"); 
  var _title = $this.attr("title"); 
  var _id; 
  _id = dialog.content(); 
  var options = { 
      backdrop: false, 
      keyboard: true, 
      show: true 
  }; 
  $('#' + _id).modal(options); 
  var modal = $('#' + _id); 
  if(typeof(_title) != "undefined"){ 
     if(modal.find('.modal-title').length <= 0){ 
       var header = dialog.header({title : _title}); 
       $($.parseHTML(header)).appendTo(modal.find(".modal-content")); 
     }else{ 
       modal.find('.modal-title').text(_title); 
     } 
     if(modal.find('.modal-body').length <= 0){ 
       var _body = dialog.body; 
       $($.parseHTML(_body)).appendTo(modal.find(".modal-content")); 
     } 
     modal.find(".modal-body").load(_url, $.proxy(function () { 
       modal.trigger('loaded.bs.modal'); 
       initView(); 
      }, this)); 
   }else{ 
     modal.find(".modal-content").load(_url, $.proxy(function () { 
       modal.trigger('loaded.bs.modal'); 
       initView(); 
      }, this)); 
   } 
  //阻止事件默认行为 
  event.preventDefault(); 
} 
//modal model 
//TO STRAT 
if(!$(window).data("_modal_id")){ 
  $(window).data("_modal_id", 0); 
} 
var dialog = { 
  header : function(options){ 
    var template = '<div class="modal-header">' 
            +  '<button type="button" class="close" aria-label="Close" onclick="hideModal(this);"><span aria-hidden="true">×</span></button>' 
            +  '<h4 class="modal-title">' + options.title + '</h4>' 
            +'</div>'; 
    return template; 
  }, 
  content : function(){ 
    var _modal_id = $(window).data("_modal_id"); 
    var _id = "_modal_id_" + _modal_id; 
    _modal_id ++; 
    $(window).data("_modal_id", _modal_id); 
    var template = '<div class="modal fade" tabindex="-1" role="dialog" id="'+ _id +'">' 
     +  '<div class="modal-dialog modal-lg" role="document" aria-hidden="true">' 
     +   '<div class="modal-content">' 
     +   '</div>' 
     +  '</div>' 
     +'</div>'; 
    $(template).appendTo('body'); 
    initView(); 
    return _id; 
  }, 
  body : '<div class="modal-body"></div>' 
}; 
//TO END

页面代码:

<a href="select.html" rel="external nofollow" id="signId" class="btn btn-info" <span style="background-color: rgb(255, 255, 102);">target="dialog"</span> title="请选择用餐类型">签到</a>

页面上只要在a标签后加上target="dialog",并且提供href外部链接地址就可以弹出modal框

以上所述是小编给大家介绍的扩展bootstrap的modal模态框-动态添加modal框-弹出多个modal框,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript版TAB选项卡效果实例
Aug 16 Javascript
网页中可关闭的漂浮窗口实现可自行调节
Aug 20 Javascript
快速解决js中window.location.href不工作的问题
Nov 02 Javascript
将JSON字符串转换成Map对象的方法
Nov 30 Javascript
老生常谈jquery中detach()和remove()的区别
Mar 02 Javascript
JS手机端touch事件计算滑动距离的方法示例
Oct 26 Javascript
浅谈angularJS2中的界面跳转方法
Aug 31 Javascript
使用vue.js在页面内组件监听scroll事件的方法
Sep 11 Javascript
对TypeScript库进行单元测试的方法
Jul 18 Javascript
微信小程序如何获取用户头像和昵称
Sep 23 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
Apr 22 Javascript
js绘制一条直线并旋转45度
Aug 21 Javascript
layer弹出层中H5播放器全屏出错的解决方法
Feb 21 #Javascript
微信小程序 支付功能开发错误总结
Feb 21 #Javascript
微信小程序 点击控件后选中其它反选实例详解
Feb 21 #Javascript
jquery实现下拉框左右选择功能
Feb 21 #Javascript
jquery实现页面加载效果
Feb 21 #Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
Feb 21 #Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
Feb 21 #Javascript
You might like
php addslashes和mysql_real_escape_string
2010/01/24 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
CI框架出现mysql数据库连接资源无法释放的解决方法
2016/05/17 PHP
PHP中的self关键字详解
2019/06/23 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
js取得url地址参数实例
2013/02/22 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
jQuery:delegate中select()不起作用的解决方法(实例讲解)
2014/01/26 Javascript
js简单抽奖代码
2015/01/16 Javascript
nodejs开发微博实例
2015/03/25 NodeJs
AngularJS中比较两个数组是否相同
2016/08/24 Javascript
手机移动端实现 jquery和HTML5 Canvas的幸运大奖盘特效
2016/12/06 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
ES6(ECMAScript 6)新特性之模板字符串用法分析
2017/04/01 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
vue2 v-model/v-text 中使用过滤器的方法示例
2019/05/09 Javascript
package.json各个属性说明详解
2020/03/11 Javascript
[01:24:16]2018DOTA2亚洲邀请赛 4.6 全明星赛
2018/04/10 DOTA
[01:16:12]完美世界DOTA2联赛PWL S2 FTD vs Inki 第一场 11.21
2020/11/23 DOTA
python中enumerate的用法实例解析
2014/08/18 Python
详解使用Python处理文件目录的相关方法
2015/10/16 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
python3编写ThinkPHP命令执行Getshell的方法
2019/02/26 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
python实现银行实战系统
2020/02/26 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
python如何利用Mitmproxy抓包
2020/10/10 Python
电气工程及其自动化学生实习自我鉴定
2013/09/19 职场文书
销售业务员岗位职责
2014/01/29 职场文书
大学生未来职业生涯规划书
2014/02/15 职场文书
《可爱的动物》教学反思
2014/02/22 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python