扩展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 相关文章推荐
跨浏览器的设置innerHTML方法
Sep 18 Javascript
jQuery实现表格颜色交替显示的方法
Mar 09 Javascript
JS验证IP,子网掩码,网关和MAC的方法
Jul 02 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
Sep 11 Javascript
Bootstrap Validator 表单验证
Jul 25 Javascript
AngularJS实现标签页的两种方式
Sep 05 Javascript
Vue常用指令V-model用法
Mar 08 Javascript
基于VUE.JS的移动端框架Mint UI的使用
Oct 11 Javascript
微信小程序中this.data与this.setData的区别详解
Sep 17 Javascript
vue项目中常见问题及解决方案(推荐)
Oct 21 Javascript
js+html实现点名系统功能
Nov 05 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
Nov 20 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
单位速度在实战中的运用
2020/03/04 星际争霸
PHP 中魔术常量的实例详解
2017/10/26 PHP
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
JavaScript使用setInterval()函数实现简单轮询操作的方法
2015/02/02 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
JavaScript实现的微信二维码图片生成器的示例
2016/10/26 Javascript
简单理解vue中el、template、replace元素
2016/10/27 Javascript
js实现界面向原生界面发消息并跳转功能
2016/11/22 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
深入解析vue 源码目录及构建过程分析
2019/04/24 Javascript
webpack4之如何编写loader的方法步骤
2019/06/06 Javascript
Python常见数据结构详解
2014/07/24 Python
python实现红包裂变算法
2016/02/16 Python
python字符串str和字节数组相互转化方法
2017/03/18 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
在pycharm上mongodb配置及可视化设置方法
2018/11/30 Python
python实现二级登陆菜单及安装过程
2019/06/21 Python
python实现比对美团接口返回数据和本地mongo数据是否一致示例
2019/08/09 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
windows下python 3.9 Numpy scipy和matlabplot的安装教程详解
2020/11/28 Python
python3处理word文档实例分析
2020/12/01 Python
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
料理师求职信
2014/01/30 职场文书
建筑横幅标语
2014/10/09 职场文书
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
男方家长婚礼答谢词
2015/09/29 职场文书
Java内存模型之happens-before概念详解
2021/06/13 Java/Android
解决SpringBoot跨域的三种方式
2021/06/26 Java/Android
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
2021/11/17 Servers