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 相关文章推荐
JavaScript Event学习第四章 传统的事件注册模型
Feb 07 Javascript
javascript不可用的问题探究
Oct 01 Javascript
JS二维数组的定义说明
Mar 03 Javascript
js 判断图片是否加载完以及实现图片的预下载
Aug 14 Javascript
Angular外部使用js调用Angular控制器中的函数方法或变量用法示例
Aug 05 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
Jan 04 Javascript
jQuery实现web页面樱花坠落的特效
Jun 01 jQuery
[js高手之路]从原型链开始图解继承到组合继承的产生详解
Aug 28 Javascript
移动端如何用下拉刷新的方式实现上拉加载
Dec 10 Javascript
JavaScript实现随机点名器实例详解
May 07 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
Jan 18 Javascript
Vue基于localStorage存储信息代码实例
Nov 16 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
php xml实例 留言本
2009/03/20 PHP
浅析PHP中strlen和mb_strlen的区别
2014/08/31 PHP
phpcms中的评论样式修改方法
2016/10/21 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
PHP设计模式之组合模式定义与应用示例
2020/02/01 PHP
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
jQuery实现图片与文字描述左右滑动自动切换的方法
2015/07/27 Javascript
探讨JavaScript中的Rest参数和参数默认值
2015/07/29 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
详解AngularJS如何实现跨域请求
2016/08/22 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
前端把html表格生成为excel表格的实例
2017/09/19 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
JavaScript 截取字符串代码实例
2019/09/05 Javascript
Vuex的实战使用详解
2019/10/31 Javascript
vue中jsonp插件的使用方法示例
2020/09/10 Javascript
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
Python中编写ORM框架的入门指引
2015/04/29 Python
python清除字符串中间空格的实例讲解
2018/05/11 Python
django基于restframework的CBV封装详解
2019/08/08 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
Python爬虫使用代理IP的实现
2019/10/27 Python
Python基于百度AI实现OCR文字识别
2020/04/02 Python
CSS3实现菜单悬停效果
2020/11/17 HTML / CSS
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
经济信息系毕业生自荐信范文
2014/03/15 职场文书
军事博物馆观后感
2015/06/05 职场文书
财务人员廉洁自律心得体会
2016/01/13 职场文书
如何书写民事调解协议书?
2019/06/25 职场文书
假如给我三天光明:舟逆水而行,人遇挫而达 
2019/10/29 职场文书
oracle表分区的概念及操作
2021/04/24 Oracle
HTML通过表单实现酒店筛选功能
2021/05/18 HTML / CSS