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页面添加到收藏夹的简单方法
Aug 07 Javascript
jQuery对Select的操作大集合(收藏)
Dec 28 Javascript
input标签内容改变的触发事件介绍
Jun 18 Javascript
JavaScript的instanceof运算符学习教程
Jun 08 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
Jun 20 Javascript
Vuejs第十篇之vuejs父子组件通信
Sep 06 Javascript
jQuery插件Echarts实现的渐变色柱状图
Mar 23 jQuery
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
Jun 07 Javascript
ES6 Promise对象的应用实例分析
Jun 27 Javascript
javascript实现blob加密视频源地址的方法
Aug 08 Javascript
基于vue-cli3创建libs库的实现方法
Dec 04 Javascript
基于Vue sessionStorage实现保留搜索框搜索内容
Jun 01 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
收音机鉴频器对声音的影响和频偏分析
2021/03/02 无线电
图片存储与浏览一例(Linux+Apache+PHP+MySQL)
2006/10/09 PHP
php获取文章上一页与下一页的方法
2014/12/01 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
学习ExtJS Window常用方法
2009/10/07 Javascript
js和php如何获取当前url的内容
2013/09/22 Javascript
JavaScript中数组继承的简单示例
2015/07/29 Javascript
很棒的Bootstrap选项卡切换效果
2016/07/01 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
在vue中实现给每个页面顶部设置title
2020/07/29 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
[46:02]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第二局
2016/02/28 DOTA
跟老齐学Python之网站的结构
2014/10/24 Python
django中的setting最佳配置小结
2017/11/21 Python
python3 selenium 切换窗口的几种方法小结
2018/05/21 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
2018/12/18 Python
python实现倒计时小工具
2019/07/29 Python
PYTHON如何读取和写入EXCEL里面的数据
2019/10/28 Python
python 使用递归回溯完美解决八皇后的问题
2020/02/26 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
PyTorch中Tensor的数据类型和运算的使用
2020/09/03 Python
微信小程序“圣诞帽”的实现思路详解
2017/12/28 HTML / CSS
启动一个线程是用run()还是start()
2016/12/25 面试题
入党申请自荐书范文
2014/02/11 职场文书
中青班党性分析材料
2014/02/16 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
公司出纳岗位职责
2015/03/31 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android