jQueryUI的Dialog的簡(jiǎn)單封裝
更新時(shí)間:2010年06月07日 22:21:20 作者:
這幾天在做一個(gè)交互的原型,第一次大量采用jQueryUI,確實(shí)非常方便好用,其中一些功能點(diǎn)用到了彈出確認(rèn)提示框,看了jQueryUI Dialog的例子,效果還不錯(cuò),就是用起來(lái)有點(diǎn)兒別扭
寫(xiě)出的代碼有點(diǎn)擰巴,需要再封裝一下!于是就有了下面這個(gè)簡(jiǎn)單的DialogHelper輔助類,因?yàn)檫@篇文章分享的重點(diǎn)是思路,所以目前版本的代碼也還非常粗糙。思路對(duì)了,后續(xù)再封裝成什么樣都不過(guò)是形式而已,希望這個(gè)思路能給大家點(diǎn)啟迪,同時(shí)歡迎大家開(kāi)拓思維,提出更好的改進(jìn)意見(jiàn)。
DialogHelper的源代碼如下:
//--對(duì)話框輔助對(duì)象-begin
//現(xiàn)在這個(gè)對(duì)象只是簡(jiǎn)單的封裝(未來(lái)可能會(huì)復(fù)雜些)。
//其作用就是簡(jiǎn)化jQuery UI的dialog的的調(diào)用方式,不在需要改動(dòng)獨(dú)立的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(); //這個(gè)克隆很重要,否則反復(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)存泄露的可能
}
//--對(duì)話框輔助對(duì)象-end
使用DialogHelper輔助類的代碼如下:
$(document).ready(function() {
$('#opener').click(function() {
//初始化一個(gè)輔助對(duì)象,這個(gè)對(duì)象可以作為全局對(duì)象只創(chuàng)建一次后反復(fù)使用更好!
dlgHelper = new DialogHelper();
//設(shè)置個(gè)性化信息
dlgHelper.set_Title("確認(rèn)要?jiǎng)h除現(xiàn)有項(xiàng)目嗎?");
dlgHelper.set_Msg("執(zhí)行這個(gè)操作,原來(lái)的項(xiàng)目將被刪除,你確認(rèn)要這么做嗎?");
dlgHelper.set_Buttons({
'確定': function(ev) {
//這里可以調(diào)用其他公共方法。
$(this).dialog('close');
},
'取消': function() {
//這里可以調(diào)用其他公共方法。
$(this).dialog('close');
}
});
//打開(kāi)窗體
dlgHelper.open();
});
});
代碼打包下載 http://xiazai.jb51.net/201006/yuanma/jQueryUI_DialogDemo.rar
DialogHelper的源代碼如下:
復(fù)制代碼 代碼如下:
//--對(duì)話框輔助對(duì)象-begin
//現(xiàn)在這個(gè)對(duì)象只是簡(jiǎn)單的封裝(未來(lái)可能會(huì)復(fù)雜些)。
//其作用就是簡(jiǎn)化jQuery UI的dialog的的調(diào)用方式,不在需要改動(dòng)獨(dú)立的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(); //這個(gè)克隆很重要,否則反復(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)存泄露的可能
}
//--對(duì)話框輔助對(duì)象-end
使用DialogHelper輔助類的代碼如下:
復(fù)制代碼 代碼如下:
$(document).ready(function() {
$('#opener').click(function() {
//初始化一個(gè)輔助對(duì)象,這個(gè)對(duì)象可以作為全局對(duì)象只創(chuàng)建一次后反復(fù)使用更好!
dlgHelper = new DialogHelper();
//設(shè)置個(gè)性化信息
dlgHelper.set_Title("確認(rèn)要?jiǎng)h除現(xiàn)有項(xiàng)目嗎?");
dlgHelper.set_Msg("執(zhí)行這個(gè)操作,原來(lái)的項(xiàng)目將被刪除,你確認(rèn)要這么做嗎?");
dlgHelper.set_Buttons({
'確定': function(ev) {
//這里可以調(diào)用其他公共方法。
$(this).dialog('close');
},
'取消': function() {
//這里可以調(diào)用其他公共方法。
$(this).dialog('close');
}
});
//打開(kāi)窗體
dlgHelper.open();
});
});
代碼打包下載 http://xiazai.jb51.net/201006/yuanma/jQueryUI_DialogDemo.rar
您可能感興趣的文章:
- jQuery UI庫(kù)中dialog對(duì)話框功能使用全解析
- 淺析JQuery UI Dialog的樣式設(shè)置問(wèn)題
- jQuery UI Dialog 創(chuàng)建友好的彈出對(duì)話框?qū)崿F(xiàn)代碼
- jquery ui dialog ie8出現(xiàn)滾動(dòng)條的解決方法
- jquery表格datatables實(shí)例解析 直接加載和延遲加載
- jQuery插件dataTables添加序號(hào)列的方法
- ASP.NET MVC+EF在服務(wù)端分頁(yè)使用jqGrid以及jquery Datatables的注意事項(xiàng)
- jQuery DataTables插件自定義Ajax分頁(yè)實(shí)例解析
- jQuery表格插件datatables用法總結(jié)
- jQuery dataTables與jQuery UI 對(duì)話框dialog的使用教程
相關(guān)文章
使用jQuery的load方法設(shè)計(jì)動(dòng)態(tài)加載及解決被加載頁(yè)面js失效問(wèn)題
這篇文章主要介紹了使用jQuery的load方法設(shè)計(jì)動(dòng)態(tài)加載及解決被加載頁(yè)面js失效問(wèn)題,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03jQuery中noconflict函數(shù)的實(shí)現(xiàn)原理分解
這篇文章主要介紹了jQuery中noconflict函數(shù)的實(shí)現(xiàn)原理分解,noconflict是用來(lái)防止變量沖突的,本文就分解了它的實(shí)現(xiàn)原理,并分析了它的實(shí)現(xiàn)源碼,需要的朋友可以參考下2015-02-02jQuery 頁(yè)面 Mask實(shí)現(xiàn)代碼
何為頁(yè)面 Mask (遮罩)?看過(guò) jQuery 的 Lightbox 插件的一定不會(huì)陌生。就是在頁(yè)面上建一個(gè)透明層遮蓋住頁(yè)面的全部?jī)?nèi)部。2010-01-01Jquery中給animation加更多的運(yùn)作效果實(shí)例
這篇文章介紹了Jquery中給animation加更多的運(yùn)作效果實(shí)例,有需要的朋友可以參考一下2013-09-09jQuery中的CSS樣式屬性css()及width()系列大全
本文給大家分享jQuery的CSS樣式屬性css(),width()系列,offset()與position(),scrollLeft()與scrollTop()的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧2021-08-08