bootstrap3 dialog 更强大、更灵活的模态框


Posted in Javascript onApril 20, 2017

用过bootstrap框架的同学们都知道,bootstrap自带的模态框用起来很不灵活,可谓鸡肋的很。但nakupanda开源作者封装了一个更强大、更灵活的模态框——bootstrap3-dialog。

一、源码下载

bootstrap3-dialog git下载地址

二、效果展示

1.error警告框

bootstrap3 dialog 更强大、更灵活的模态框

2.confirm确认选择框

bootstrap3 dialog 更强大、更灵活的模态框

3.Success提示框

bootstrap3 dialog 更强大、更灵活的模态框

4.ajax加载远程页面弹出框

bootstrap3 dialog 更强大、更灵活的模态框

5.ajax加载自定义页面弹出框

bootstrap3 dialog 更强大、更灵活的模态框

三、使用方法

bootstrap3-dialog的demo中已有很详细的介绍,但对于初学者来说是个麻烦,还要一个一个方法和注释去看。但我对这些常用的方法进行了新的封装,所以就简便了很多。
引入js和css文件我就不多说了,直接说使用方法。

①、error警告框

//弹出错误提示的登录框
$.showErr = function(str, func) {
 // 调用show方法
 BootstrapDialog.show({
  type : BootstrapDialog.TYPE_DANGER,
  title : '错误 ',
  message : str,
  size : BootstrapDialog.SIZE_SMALL,//size为小,默认的对话框比较宽
  buttons : [ {// 设置关闭按钮
   label : '关闭',
   action : function(dialogItself) {
    dialogItself.close();
   }
  } ],
  // 对话框关闭时带入callback方法
  onhide : func
 });
};

这样封装后,需要弹出error警告框的时候直接使用$.showErr("当日没有资金日报")即可。

②、confirm确认选择框

$.showConfirm = function(str, funcok, funcclose) {
 BootstrapDialog.confirm({
  title : '确认',
  message : str,
  type : BootstrapDialog.TYPE_WARNING, // <-- Default value is
  // BootstrapDialog.TYPE_PRIMARY
  closable : true, // <-- Default value is false,点击对话框以外的页面内容可关闭
  draggable : true, // <-- Default value is false,可拖拽
  btnCancelLabel : '取消', // <-- Default value is 'Cancel',
  btnOKLabel : '确定', // <-- Default value is 'OK',
  btnOKClass : 'btn-warning', // <-- If you didn't specify it, dialog type
  size : BootstrapDialog.SIZE_SMALL,
  // 对话框关闭的时候执行方法
  onhide : funcclose,
  callback : function(result) {
   // 点击确定按钮时,result为true
   if (result) {
    // 执行方法
    funcok.call();
   }
  }
 });
};

通过$.showConfirm(title, _doPost);进行调用。

③、Success提示框

$.showSuccessTimeout = function(str, func) {
 BootstrapDialog.show({
  type : BootstrapDialog.TYPE_SUCCESS,
  title : '成功 ',
  message : str,
  size : BootstrapDialog.SIZE_SMALL,
  buttons : [ {
   label : '确定',
   action : function(dialogItself) {
    dialogItself.close();
   }
  } ],
  // 指定时间内可自动关闭
  onshown : function(dialogRef) {
   setTimeout(function() {
    dialogRef.close();
   }, YUNM._set.timeout);
  },
  onhide : func
 });
};

④、ajax加载远程页面弹出框

首先,我们先来看如何使用。

<a href="${ctx}/common/showSendMessage" rel="external nofollow" rel="external nofollow" target="dialog">点击打开</a>

对,就这一行代码即可!

  1. 一个a标签
  2. 一个href属性指向远程页面
  3. target属性设置为dialog

不过,我们需要做一下封装。

第一步,页面加载时,我们需要让a标签执行ajaxTodialog方法。

$(function() {
 // dialogs
 if ($.fn.ajaxTodialog) {
  $("a[target=dialog]").ajaxTodialog();
 }
});

第二步,封装ajaxTodialog方法。

$.fn.extend({
 ajaxTodialog : function() {
  return this.click(function(event) {
   var $this = $(this);
   YUNM.debug("ajaxTodialog" + $this.selector);
   var title = $this.attr("title") || $this.text();
   var url=$this.attr("href");
   $.ajax({
    type : 'POST',
    url : url,
    cache : false,
    success : function(response) {
     ajaxDialog = BootstrapDialog.show({
      message : function(dialog) {
       var $message = $('<div></div>');
       $message.html(response);// 把传回来的页面作为message返回
       return $message;
      },
      title : title,
    }
   });
   event.preventDefault();
   return false;
  });
 },
});

⑤、ajax加载自定义页面弹出框

⑤和④类似,不过有些区别,下面只把区别列出来。

使用方法上,需要加上manipulating=”1”,指明为自定义页面,不使用bootstrap dialog的header、footer。

<a href="${ctx}/common/showSendMessage" rel="external nofollow" rel="external nofollow" target="dialog" manipulating="1">自定义页面</a>

ajaxTodialog方法中增加对manipulating=1的处理。

if (manipulating == 1) {
 ajaxDialog = new BootstrapDialog({
  message : function(dialog) {
   var $message = $('<div></div>');
   $message.html(response);

   return $message;
  },
  // 找到自定义页面上x号进行绑定close事件
  onshown : function(dialogRef) {
   var $button = dialogRef.getModalContent().find('button[data-widget="remove"]');
   $button.on('click', {
    dialogRef : dialogRef
   }, function(event) {
    event.data.dialogRef.close();
   });
  },
 });
 ajaxDialog.realize();
 ajaxDialog.getModalHeader().hide();// header不要
 ajaxDialog.getModalFooter().hide();// footer也不要
 ajaxDialog.getModalBody().css('padding', 0);// 无填充
 ajaxDialog.open();
}

以上所述是小编给大家介绍的bootstrap3 dialog 更强大、更灵活的模态框,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
jquery一般方法介绍 入门参考
Jun 21 Javascript
JQuery1.6 使用方法三
Nov 23 Javascript
js触发asp.net的Button的Onclick事件应用
Feb 02 Javascript
php的文件上传入门教程(实例讲解)
Apr 10 Javascript
js打造数组转json函数
Jan 14 Javascript
jQuery实现径向动画菜单效果
Jul 17 Javascript
浅谈Javascript事件对象
Feb 05 Javascript
node.js将MongoDB数据同步到MySQL的步骤
Dec 10 Javascript
vue 使用Jade模板写html,stylus写css的方法
Feb 23 Javascript
require.js 加载过程与使用方法介绍
Oct 30 Javascript
通过图带你深入了解vue的响应式原理
Jun 21 Javascript
微信小程序实现按字母排列选择城市功能
Nov 25 Javascript
angularjs过滤器--filter与ng-repeat配合有奇效
Apr 20 #Javascript
JS简单判断字符在另一个字符串中出现次数的2种常用方法
Apr 20 #Javascript
bootstrap常用组件之头部导航实现代码
Apr 20 #Javascript
基于JavaScript实现活动倒计时效果
Apr 20 #Javascript
微信小程序-横向滑动scroll-view隐藏滚动条
Apr 20 #Javascript
jquery将标签元素的高设为屏幕的百分比
Apr 19 #jQuery
通过js修改input、select默认字体颜色
Apr 19 #Javascript
You might like
ThinkPHP实现跨模块调用操作方法概述
2014/06/20 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
PHP实现数组和对象的相互转换操作示例
2019/03/20 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
Mootools 1.2教程 Fx.Tween的使用
2009/09/15 Javascript
简略的前端架构心得&amp;&amp;基于editor为例子的编码小技巧
2010/11/25 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
jQuery的选择器中的通配符使用介绍
2014/03/20 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
js控制页面的全屏展示和退出全屏显示的方法
2015/03/10 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
JavaScript常用正则验证函数实例小结【年龄,数字,Email,手机,URL,日期等】
2017/01/23 Javascript
Vue.js实例方法之生命周期详解
2017/07/03 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
Vue2.0 $set()的正确使用详解
2020/07/28 Javascript
javascript实现多边形碰撞检测
2020/10/24 Javascript
Python操作Excel之xlsx文件
2017/03/24 Python
python如何在循环引用中管理内存
2018/03/20 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
分公司经理岗位职责
2013/11/11 职场文书
创业计划书六个要素
2013/12/26 职场文书
秘书英文求职信
2014/04/16 职场文书
淘宝店策划方案
2014/06/07 职场文书
群众路线教育实践活动学习心得体会
2014/10/30 职场文书
检讨书怎么写?
2019/06/21 职场文书