bootstrap3 dialog 更强大、更灵活的模态框
用过bootstrap框架的同学们都知道,bootstrap自带的模态框用起来很不灵活,可谓鸡肋的很。但nakupanda开源作者封装了一个更强大、更灵活的模态框——bootstrap3-dialog。
一、源码下载
二、效果展示
1.error警告框
2.confirm确认选择框
3.success提示框
4.ajax加载远程页面弹出框
5.ajax加载自定义页面弹出框
三、使用方法
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>
对,就这一行代码即可!
- 一个a标签
- 一个href属性指向远程页面
- 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 更强大、更灵活的模态框,希望对大家有所帮助
上一篇: Python标准库