bootstrap3 dialog 更強(qiáng)大、更靈活的模態(tài)框
用過bootstrap框架的同學(xué)們都知道,bootstrap自帶的模態(tài)框用起來很不靈活,可謂雞肋的很。但nakupanda開源作者封裝了一個更強(qiáng)大、更靈活的模態(tài)框——bootstrap3-dialog。
一、源碼下載
二、效果展示
1.error警告框

2.confirm確認(rèn)選擇框

3.Success提示框

4.ajax加載遠(yuǎn)程頁面彈出框

5.ajax加載自定義頁面彈出框

三、使用方法
bootstrap3-dialog的demo中已有很詳細(xì)的介紹,但對于初學(xué)者來說是個麻煩,還要一個一個方法和注釋去看。但我對這些常用的方法進(jìn)行了新的封裝,所以就簡便了很多。
引入js和css文件我就不多說了,直接說使用方法。
①、error警告框
//彈出錯誤提示的登錄框
$.showErr = function(str, func) {
// 調(diào)用show方法
BootstrapDialog.show({
type : BootstrapDialog.TYPE_DANGER,
title : '錯誤 ',
message : str,
size : BootstrapDialog.SIZE_SMALL,//size為小,默認(rèn)的對話框比較寬
buttons : [ {// 設(shè)置關(guān)閉按鈕
label : '關(guān)閉',
action : function(dialogItself) {
dialogItself.close();
}
} ],
// 對話框關(guān)閉時帶入callback方法
onhide : func
});
};
這樣封裝后,需要彈出error警告框的時候直接使用$.showErr("當(dāng)日沒有資金日報")即可。
②、confirm確認(rèn)選擇框
$.showConfirm = function(str, funcok, funcclose) {
BootstrapDialog.confirm({
title : '確認(rèn)',
message : str,
type : BootstrapDialog.TYPE_WARNING, // <-- Default value is
// BootstrapDialog.TYPE_PRIMARY
closable : true, // <-- Default value is false,點(diǎn)擊對話框以外的頁面內(nèi)容可關(guān)閉
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,
// 對話框關(guān)閉的時候執(zhí)行方法
onhide : funcclose,
callback : function(result) {
// 點(diǎn)擊確定按鈕時,result為true
if (result) {
// 執(zhí)行方法
funcok.call();
}
}
});
};
通過$.showConfirm(title, _doPost);進(jìn)行調(diào)用。
③、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();
}
} ],
// 指定時間內(nèi)可自動關(guān)閉
onshown : function(dialogRef) {
setTimeout(function() {
dialogRef.close();
}, YUNM._set.timeout);
},
onhide : func
});
};
④、ajax加載遠(yuǎn)程頁面彈出框
首先,我們先來看如何使用。
<a href="${ctx}/common/showSendMessage" rel="external nofollow" rel="external nofollow" target="dialog">點(diǎn)擊打開</a>
對,就這一行代碼即可!
- 一個a標(biāo)簽
- 一個href屬性指向遠(yuǎn)程頁面
- target屬性設(shè)置為dialog
不過,我們需要做一下封裝。
第一步,頁面加載時,我們需要讓a標(biāo)簽執(zhí)行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加載自定義頁面彈出框
⑤和④類似,不過有些區(qū)別,下面只把區(qū)別列出來。
使用方法上,需要加上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號進(jìn)行綁定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 更強(qiáng)大、更靈活的模態(tài)框,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
微信小程序?qū)崿F(xiàn)輪播圖(適配機(jī)型)
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)輪播圖,適配機(jī)型,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-06-06
微信小程序五子棋游戲AI實(shí)現(xiàn)方法【附demo源碼下載】
這篇文章主要介紹了微信小程序五子棋游戲AI實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了五子棋游戲中人機(jī)對戰(zhàn)的AI原理及相關(guān)實(shí)現(xiàn)技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下2019-02-02
js實(shí)現(xiàn)三張圖(文)片一起切換的banner焦點(diǎn)圖
這篇文章主要介紹了js實(shí)現(xiàn)三張圖(文)片一起切換的banner焦點(diǎn)圖,推薦給大家,有需要的小伙伴可以參考下。2015-08-08
javascript中的深復(fù)制詳解及實(shí)例分析
這篇文章主要介紹了javascript中的深復(fù)制詳解及實(shí)例分析的相關(guān)資料,需要的朋友可以參考下2016-12-12
JavaScript實(shí)現(xiàn)復(fù)制功能各瀏覽器支持情況實(shí)測
這兩天在做Web前端時,遇到需求通過js實(shí)現(xiàn)文本復(fù)制的功能,下面與大家分享下各瀏覽器對復(fù)制功能的支持情況,感興趣的朋友可以參考下哈2013-07-07

