扩展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 相关文章推荐
jquery 表单进行客户端验证demo
Aug 24 Javascript
Javascript 检测、添加、移除样式(className)函数代码
Sep 08 Javascript
javascript alert乱码的解决方法
Nov 05 Javascript
javascript获取元素偏移量的方法有哪些
Jun 24 Javascript
jQuery 中$(this).index与$.each的使用指南
Nov 20 Javascript
jquery实现点击页面计算点击次数
Jan 23 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
Apr 06 Javascript
jQuery中toggle()函数的使用实例
Apr 17 Javascript
js判断节假日实例代码
Dec 27 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
Apr 23 Javascript
vue 路由子组件created和mounted不起作用的解决方法
Nov 05 Javascript
Vue绑定用户接口实现代码示例
Nov 04 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的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
2016/03/18 PHP
PHP静态延迟绑定和普通静态效率的对比
2017/10/20 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
childNodes.length与children.length的区别
2009/05/14 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
jquery $.ajax相关用法分享
2012/03/16 Javascript
js获取通过ajax返回的map型的JSONArray的方法
2014/01/09 Javascript
使用Jquery获取带特殊符号的ID 标签的方法
2014/04/30 Javascript
js数组的操作指南
2014/12/28 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
vue 路由页面之间实现用手指进行滑动的方法
2018/02/23 Javascript
javascript 使用sleep函数的常见方法详解
2020/04/26 Javascript
vue-cli3项目配置eslint代码规范的完整步骤
2020/09/10 Javascript
vue动态设置路由权限的主要思路
2021/01/13 Vue.js
[02:25]DOTA2英雄基础教程 熊战士
2014/01/03 DOTA
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
澳大利亚领先的女性运动服品牌:Lorna Jane
2020/06/19 全球购物
人事专员的职责
2014/02/26 职场文书
结对共建工作方案
2014/06/02 职场文书
大学学雷锋活动总结
2014/06/26 职场文书
小学开学标语
2014/07/01 职场文书
应届生求职自荐信
2014/07/04 职场文书
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
九年级历史教学反思
2016/02/19 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
手把手教你怎么用Python实现zip文件密码的破解
2021/05/27 Python
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android