jQueryUI的Dialog的簡單封裝
更新時間:2010年06月07日 22:21:20 作者:
這幾天在做一個交互的原型,第一次大量采用jQueryUI,確實非常方便好用,其中一些功能點用到了彈出確認(rèn)提示框,看了jQueryUI Dialog的例子,效果還不錯,就是用起來有點兒別扭
寫出的代碼有點擰巴,需要再封裝一下!于是就有了下面這個簡單的DialogHelper輔助類,因為這篇文章分享的重點是思路,所以目前版本的代碼也還非常粗糙。思路對了,后續(xù)再封裝成什么樣都不過是形式而已,希望這個思路能給大家點啟迪,同時歡迎大家開拓思維,提出更好的改進(jìn)意見。
DialogHelper的源代碼如下:
//--對話框輔助對象-begin
//現(xiàn)在這個對象只是簡單的封裝(未來可能會復(fù)雜些)。
//其作用就是簡化jQuery UI的dialog的的調(diào)用方式,不在需要改動獨立的DOM結(jié)構(gòu),參數(shù)傳遞方式更直接。
DialogHelper = function() {
var m_title = ""; //設(shè)置標(biāo)題
var m_msg = ""; //設(shè)置消息正文
var m_btns = null; //設(shè)置按鈕
this.dlgDiv = $("<div><p><span class=\"ui-icon ui-icon-alert\" style=\"float: left; margin: 0 7px 20px 0;\"></span></p></div>");//這部分可根據(jù)情況自定義
//todo:圖標(biāo)、高度、寬度、彈出模式等都應(yīng)該可以設(shè)置。
this.set_Title = function(val) {
this.m_title = val;
}
this.get_Title = function() {
return this.m_title;
}
this.set_Msg = function(val) {
this.m_msg = val;
}
this.get_Msg = function() {
return this.m_msg;
}
this.set_Buttons = function(val) {
this.m_btns = val;
}
this.get_Buttons = function() {
return this.m_btns;
}
this.open = function() {
$dlg = this.dlgDiv.clone(); //這個克隆很重要,否則反復(fù)添加正文。
$dlg.children().filter("p").html(this.dlgDiv.children().filter("p").html() + this.get_Msg()); //增加自定義消息
$dlg.dialog({
autoOpen: true,
show: 'blind',
hide: 'explode',
position: 'center',
height: 260,
width: 460,
modal: true,
title: this.get_Title(),
buttons: this.get_Buttons()
});
}
//todo:考慮是否有內(nèi)存泄露的可能
}
//--對話框輔助對象-end
使用DialogHelper輔助類的代碼如下:
$(document).ready(function() {
$('#opener').click(function() {
//初始化一個輔助對象,這個對象可以作為全局對象只創(chuàng)建一次后反復(fù)使用更好!
dlgHelper = new DialogHelper();
//設(shè)置個性化信息
dlgHelper.set_Title("確認(rèn)要刪除現(xiàn)有項目嗎?");
dlgHelper.set_Msg("執(zhí)行這個操作,原來的項目將被刪除,你確認(rèn)要這么做嗎?");
dlgHelper.set_Buttons({
'確定': function(ev) {
//這里可以調(diào)用其他公共方法。
$(this).dialog('close');
},
'取消': function() {
//這里可以調(diào)用其他公共方法。
$(this).dialog('close');
}
});
//打開窗體
dlgHelper.open();
});
});
代碼打包下載 http://xiazai.jb51.net/201006/yuanma/jQueryUI_DialogDemo.rar
DialogHelper的源代碼如下:
復(fù)制代碼 代碼如下:
//--對話框輔助對象-begin
//現(xiàn)在這個對象只是簡單的封裝(未來可能會復(fù)雜些)。
//其作用就是簡化jQuery UI的dialog的的調(diào)用方式,不在需要改動獨立的DOM結(jié)構(gòu),參數(shù)傳遞方式更直接。
DialogHelper = function() {
var m_title = ""; //設(shè)置標(biāo)題
var m_msg = ""; //設(shè)置消息正文
var m_btns = null; //設(shè)置按鈕
this.dlgDiv = $("<div><p><span class=\"ui-icon ui-icon-alert\" style=\"float: left; margin: 0 7px 20px 0;\"></span></p></div>");//這部分可根據(jù)情況自定義
//todo:圖標(biāo)、高度、寬度、彈出模式等都應(yīng)該可以設(shè)置。
this.set_Title = function(val) {
this.m_title = val;
}
this.get_Title = function() {
return this.m_title;
}
this.set_Msg = function(val) {
this.m_msg = val;
}
this.get_Msg = function() {
return this.m_msg;
}
this.set_Buttons = function(val) {
this.m_btns = val;
}
this.get_Buttons = function() {
return this.m_btns;
}
this.open = function() {
$dlg = this.dlgDiv.clone(); //這個克隆很重要,否則反復(fù)添加正文。
$dlg.children().filter("p").html(this.dlgDiv.children().filter("p").html() + this.get_Msg()); //增加自定義消息
$dlg.dialog({
autoOpen: true,
show: 'blind',
hide: 'explode',
position: 'center',
height: 260,
width: 460,
modal: true,
title: this.get_Title(),
buttons: this.get_Buttons()
});
}
//todo:考慮是否有內(nèi)存泄露的可能
}
//--對話框輔助對象-end
使用DialogHelper輔助類的代碼如下:
復(fù)制代碼 代碼如下:
$(document).ready(function() {
$('#opener').click(function() {
//初始化一個輔助對象,這個對象可以作為全局對象只創(chuàng)建一次后反復(fù)使用更好!
dlgHelper = new DialogHelper();
//設(shè)置個性化信息
dlgHelper.set_Title("確認(rèn)要刪除現(xiàn)有項目嗎?");
dlgHelper.set_Msg("執(zhí)行這個操作,原來的項目將被刪除,你確認(rèn)要這么做嗎?");
dlgHelper.set_Buttons({
'確定': function(ev) {
//這里可以調(diào)用其他公共方法。
$(this).dialog('close');
},
'取消': function() {
//這里可以調(diào)用其他公共方法。
$(this).dialog('close');
}
});
//打開窗體
dlgHelper.open();
});
});
代碼打包下載 http://xiazai.jb51.net/201006/yuanma/jQueryUI_DialogDemo.rar
您可能感興趣的文章:
- jQuery UI庫中dialog對話框功能使用全解析
- 淺析JQuery UI Dialog的樣式設(shè)置問題
- jQuery UI Dialog 創(chuàng)建友好的彈出對話框?qū)崿F(xiàn)代碼
- jquery ui dialog ie8出現(xiàn)滾動條的解決方法
- jquery表格datatables實例解析 直接加載和延遲加載
- jQuery插件dataTables添加序號列的方法
- ASP.NET MVC+EF在服務(wù)端分頁使用jqGrid以及jquery Datatables的注意事項
- jQuery DataTables插件自定義Ajax分頁實例解析
- jQuery表格插件datatables用法總結(jié)
- jQuery dataTables與jQuery UI 對話框dialog的使用教程
相關(guān)文章
使用jQuery的load方法設(shè)計動態(tài)加載及解決被加載頁面js失效問題
這篇文章主要介紹了使用jQuery的load方法設(shè)計動態(tài)加載及解決被加載頁面js失效問題,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03jQuery中noconflict函數(shù)的實現(xiàn)原理分解
這篇文章主要介紹了jQuery中noconflict函數(shù)的實現(xiàn)原理分解,noconflict是用來防止變量沖突的,本文就分解了它的實現(xiàn)原理,并分析了它的實現(xiàn)源碼,需要的朋友可以參考下2015-02-02jQuery中的CSS樣式屬性css()及width()系列大全
本文給大家分享jQuery的CSS樣式屬性css(),width()系列,offset()與position(),scrollLeft()與scrollTop()的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-08-08