扩展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 相关文章推荐
JS控件autocomplete 0.11演示及下载 1月5日已更新
Jan 09 Javascript
jquery imgareaselect 使用利用js与程序结合实现图片剪切
Jul 30 Javascript
jquery 弹出层注册页面等(asp.net后台)
Jun 17 Javascript
javascript 中String.match()与RegExp.exec()的区别说明
Jan 10 Javascript
使用plupload自定义参数实现多文件上传
Jul 19 Javascript
js实现常用排序算法
Aug 09 Javascript
详解VueJs异步动态加载块
Mar 09 Javascript
Vue.js教程之axios与网络传输的学习实践
Apr 29 Javascript
vue单页应用中如何使用jquery的方法示例
Jul 27 jQuery
Vue实现移动端页面切换效果【推荐】
Nov 13 Javascript
vue路由导航守卫和请求拦截以及基于node的token认证的方法
Apr 07 Javascript
前端Electron新手入门教程详解
Jun 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
DC《小丑》11项提名领跑奥斯卡 Netflix成第92届奥斯卡提名最大赢家
2020/04/09 欧美动漫
php 更新数据库中断的解决方法
2009/06/05 PHP
PHP XML error parsing SOAP payload on line 1
2010/06/17 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
PHP会话操作之cookie用法分析
2016/09/28 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
2016/12/14 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
2018/09/26 PHP
JavaScript 拾碎[三] 使用className属性
2010/10/16 Javascript
基于jquery的跨域调用文件
2010/11/19 Javascript
jquery 读取页面load get post ajax 四种方式代码写法
2011/04/02 Javascript
判断js中各种数据的类型方法之typeof与0bject.prototype.toString讲解
2013/11/07 Javascript
jQuery Dialog对话框事件用法实例分析
2016/05/10 Javascript
动态加载js、css的简单实现代码
2016/05/26 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
javascript表单控件实例讲解
2016/09/13 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
BootStrap实现鼠标悬停下拉列表功能
2017/02/17 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
JS实现运动缓冲效果的封装函数示例
2018/02/18 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
Vue中的methods、watch、computed的区别
2018/11/26 Javascript
python文件读写操作与linux shell变量命令交互执行的方法
2015/01/14 Python
python XlsxWriter模块创建aexcel表格的实例讲解
2018/05/03 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
Python 找到列表中满足某些条件的元素方法
2018/06/26 Python
python调用百度语音REST API
2018/08/30 Python
使用TFRecord存取多个数据案例
2020/02/17 Python
python 使用while循环输出*组成的菱形实例
2020/04/12 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
Penhaligon’s英国官网:成立于1870年的英国香水制造商
2021/02/18 全球购物
十七岁的单车观后感
2015/06/12 职场文书
红白喜事主持词
2015/07/06 职场文书
redis中lua脚本使用教程
2021/11/01 Redis
Golang获取List列表元素的四种方式
2022/04/20 Golang