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 相关文章推荐
javascript编程起步(第五课)
Feb 27 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
Jan 13 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
Jan 18 Javascript
jquery插件开发注意事项小结
Jun 04 Javascript
cookie中的path与domain属性详解
Dec 18 Javascript
JavaScript实现简单的tab选项卡切换
Jan 05 Javascript
jQuery文字横向滚动效果的实现代码
May 31 Javascript
Js利用Canvas实现图片压缩功能
Sep 13 Javascript
seajs中最常用的7个功能、配置示例
Oct 10 Javascript
基于JavaScript实现幸运抽奖页面
Jul 05 Javascript
vue项目环境变量配置的实现方法
Oct 12 Javascript
微信小程序swiper禁止用户手动滑动代码实例
Aug 23 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
收藏的PHP常用函数 推荐收藏保存
2010/02/21 PHP
php建立Ftp连接的方法
2015/03/07 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
jquery键盘事件介绍
2011/01/31 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
将list转换为json失败的原因
2013/12/17 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
jQuery监听文件上传实现进度条效果的方法
2016/10/16 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
微信小程序实现点击按钮后修改颜色
2019/12/05 Javascript
[03:49]DOTA2英雄基础教程 光之守卫
2014/01/14 DOTA
Python模块学习 filecmp 文件比较
2012/08/27 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
在Python中使用next()方法操作文件的教程
2015/05/24 Python
python简单读取大文件的方法
2016/07/01 Python
Python+Wordpress制作小说站
2017/04/14 Python
python如何为创建大量实例节省内存
2018/03/20 Python
Python3导入自定义模块的三种方法详解
2018/04/13 Python
Python+selenium实现自动循环扔QQ邮箱漂流瓶
2018/05/29 Python
python实现诗歌游戏(类继承)
2019/02/26 Python
如何使用django的MTV开发模式返回一个网页
2019/07/22 Python
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
温泉秘密:Onsen Secret
2020/07/06 全球购物
日期和时间问题
2015/01/04 面试题
新闻编辑自荐信
2013/11/03 职场文书
平面设计师工作职责范文
2013/12/03 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
感恩教育观后感
2015/06/17 职场文书
八年级作文之友情
2019/11/25 职场文书
使用tensorflow 实现反向传播求导
2021/05/26 Python
React配置子路由的实现
2021/06/03 Javascript
JDK8中String的intern()方法实例详细解读
2022/09/23 Java/Android