jQueryUI的Dialog的简单封装


Posted in Javascript onJune 07, 2010

写出的代码有点拧巴,需要再封装一下!于是就有了下面这个简单的DialogHelper辅助类,因为这篇文章分享的重点是思路,所以目前版本的代码也还非常粗糙。思路对了,后续再封装成什么样都不过是形式而已,希望这个思路能给大家点启迪,同时欢迎大家开拓思维,提出更好的改进意见。

DialogHelper的源代码如下:

//--对话框辅助对象-begin 
//现在这个对象只是简单的封装(未来可能会复杂些)。 
//其作用就是简化jQuery UI的dialog的的调用方式,不在需要改动独立的DOM结构,参数传递方式更直接。 
DialogHelper = function() { 
var m_title = ""; //设置标题 
var m_msg = ""; //设置消息正文 
var m_btns = null; //设置按钮 
this.dlgDiv = $("<div><p><span class=\"ui-icon ui-icon-alert\" style=\"float: left; margin: 0 7px 20px 0;\"></span></p></div>");//这部分可根据情况自定义 
//todo:图标、高度、宽度、弹出模式等都应该可以设置。 
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(); //这个克隆很重要,否则反复添加正文。 
$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:考虑是否有内存泄露的可能 
} 
//--对话框辅助对象-end

使用DialogHelper辅助类的代码如下:
$(document).ready(function() { 
$('#opener').click(function() { 
//初始化一个辅助对象,这个对象可以作为全局对象只创建一次后反复使用更好! 
dlgHelper = new DialogHelper(); 
//设置个性化信息 
dlgHelper.set_Title("确认要删除现有项目吗?"); 
dlgHelper.set_Msg("执行这个操作,原来的项目将被删除,你确认要这么做吗?"); 
dlgHelper.set_Buttons({ 
'确定': function(ev) { 
//这里可以调用其他公共方法。 
$(this).dialog('close'); 
}, 
'取消': function() { 
//这里可以调用其他公共方法。 
$(this).dialog('close'); 
} 
}); 
//打开窗体 
dlgHelper.open(); 
}); 
});

代码打包下载 http://xiazai.3water.com/201006/yuanma/jQueryUI_DialogDemo.rar
Javascript 相关文章推荐
web前端开发也需要日志
Dec 09 Javascript
jquery实现动态画圆
Dec 04 Javascript
Javascript函数的参数
Jul 16 Javascript
详解js跨域原理以及2种解决方案
Dec 09 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
Jan 23 Javascript
js实现横向拖拽导航条功能
Feb 17 Javascript
vue用递归组件写树形控件的实例代码
Jul 19 Javascript
微信二次分享报错invalid signature问题及解决方法
Apr 01 Javascript
JavaScript实现栈结构Stack过程详解
Mar 07 Javascript
JavaScript实现像雪花一样的Hexaflake分形
Jul 07 Javascript
解决ant Design中Select设置initialValue时的大坑
Oct 29 Javascript
基于ajax实现上传图片代码示例解析
Dec 03 Javascript
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
Jun 07 #Javascript
基于jquery+thickbox仿校内登录注册框
Jun 07 #Javascript
jquery 注意事项与常用语法小结
Jun 07 #Javascript
php上传图片并给图片打上透明水印的代码
Jun 07 #Javascript
指定位置如果有图片显示图片,无图片显示广告的JS
Jun 05 #Javascript
JavaScript 异步方法队列链实现代码分析
Jun 05 #Javascript
js 全兼容可高亮二级缓冲折叠菜单
Jun 04 #Javascript
You might like
2020最新CPU的性能排名
2020/04/02 数码科技
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
input 输入框获得/失去焦点时隐藏/显示文字(jquery版)
2013/04/02 Javascript
jQuery 获取URL的GET参数值的小例子
2013/04/18 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
js输出数据精确到小数点后n位代码
2016/07/02 Javascript
JavaScript的兼容性与调试技巧
2016/11/22 Javascript
layer弹出层自适应高度,垂直水平居中的实现
2019/09/16 Javascript
layer.alert自定义关闭回调事件的方法
2019/09/27 Javascript
jQuery HTML设置内容和属性操作实例分析
2020/05/20 jQuery
vuex中store存储store.commit和store.dispatch的用法
2020/07/24 Javascript
Java 生成随机字符的示例代码
2021/01/13 Javascript
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
Python操作SQLite简明教程
2014/07/10 Python
Python兔子毒药问题实例分析
2015/03/05 Python
解决python2.7用pip安装包时出现错误的问题
2017/01/23 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
Python读写csv文件流程及异常解决
2020/10/20 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
N.Peal官网:来自伦敦的高档羊绒品牌
2018/10/29 全球购物
幼儿园课题实施方案
2014/05/14 职场文书
舞蹈专业求职信
2014/06/13 职场文书
文案策划专业自荐信
2014/07/07 职场文书
创先争优个人承诺书
2014/08/30 职场文书
2014年信息技术工作总结
2014/12/16 职场文书
交通事故案件代理词
2015/05/23 职场文书
MATLAB 全景图切割及盒图显示的实现步骤
2021/05/14 Python
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS
配置nginx负载均衡
2022/05/06 Servers