



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自己封装了一个JQuery UI Dialog的插件,这样就可以很方便的使用模态窗口了。先把代码post上来。后续说明再添加上去。我这里面加入了一个拖动事件,原因是有的页面会禁止鼠标选择页面文本和鼠标右键的功能,这会影响到窗口的拖动效果。所以不得已只好自己重新实现一个拖动效果,如果不需要的话可以自行去掉。发表与我的博客 http:/www.chihoo.me/archives/87 /模态窗口插件(function($) $.Dialog = option: title: dialog, height: 300, width: 500, modal: true, resizable: false, external: true, draggable: true , open: function(url, dlgid, options) var op = $.extend(, $.Dialog.option, options); var draggable = op.draggable; op.draggable = false; /关闭ui.dialog的默认拖动事件,改用自定义事件draggable dlgid += new Date().getTime(); / 加入当前时间戳,建立动态ID避免ID冲突 var tempDialog = document.getElementById(dlgid); if (tempDialog != undefined & tempDialog != null) $dialog = $(tempDialog); else $body = $(body); $div = $(); $div.attr(id, dlgid); $body.append($div); $dialog = $(# + dlgid); if (op.external) var iframeWidth = parseInt(op.width) - 10; var iframeHeight = parseInt(op.height); iframe = $().attr( src: url, frameborder: 0, marginwidth: 0, marginheight: 0 ) .css( width: iframeWidth + px, height: iframeHeight + px, margin: 5px ); $dialog.html(iframe); else /嵌入html alert(不支持external: false的模式); $dialog.dialog(op); $dialog.height(parseInt(op.height) - $($dialog).siblings(.ui-dialog-titlebar).outerHeight(); iframe.height(parseInt(op.height) - $($dialog).siblings(.ui-dialog-titlebar).outerHeight(); if (op.param) $dialog.data(param, op.param); $dialog.data(dlgid + callback, options.callback); $(body).data(dlgid, $dialog); /添加窗口拖动事件 if (draggable) $.Dialog.draggable(dlgid); var iframeObj = $(# + dlgid + iframe).get(0).contentWindow; /在iframe的页面中创建window.dialogVal方法,在iframe中使用window.dialogVal()取得传递的参数 iframeObj.dialogVal = function() if ($dialog.data(param) != undefined & $dialog.data(param) != null) return $dialog.data(param); else return ; /在iframe的页面中创建window.closeDialog方法,在iframe中使用window.closeDialog()关闭窗口 iframeObj.closeDialog = function() $.Dialog.close(dlgid); /在iframe的页面中创建window.closeDialogAndReturn方法, /在iframe中使用window.closeDialogAndReturn(returnValue)关闭窗口并返回参数,returnValue为返回的参数 iframeObj.closeDialogAndReturn = function(returnValue) $.Dialog.closeAndReturnVal(dlgid, returnValue); /除去原有的关闭事件并绑定自定义关闭动作 $(# + dlgid).siblings(.ui-dialog-titlebar).find(.ui-dialog-titlebar-close).unbind().bind(click, function() $.Dialog.close(dlgid); ); , /关闭dialog close: function(dialog) if (typeof dialog = string) dialog = $(body).data(dialog); if (dialog = undefined | dialog = null) dialog = $(# + dialog); $(iframe, dialog).remove(); dialog.dialog(close); dialog.parent().remove(); /移除新建的窗口 dialog.remove(); , /关闭dialog并执行返回函数 closeAndReturnVal: function(dlgid, returnValue) var dialog = dlgid; if (typeof dialog = string) dialog = $(body).data(dialog); if (dialog = undefined | dialog = null) dialog = $(# + dialog); if ($(dialog).data(dlgid + callback) != null) $(dialog).data(dlgid + callback).apply(this, returnValue); /执行回调函数并返回value,value可自行定义,在回调函数中自行操作 $.Dialog.close(dialog); , draggable: function(dlgid) $dialog = $(# + dlgid); var bool = false; $dialog.siblings(.ui-dialog-titlebar).css(cursor, move); $dialog.siblings(.ui-dialog-titlebar).unbind().select(function() return false; ).mousedown(function(e) bool = true; $dialog.data(offsetX, e.pageX); $dialog.data(offsetY, e.pageY); $dialog.data(left, $dialog.parent().offset().left); $dialog.data(top, $dialog.parent().offset().top); ).mouseleave(function() bool = false; ); $(document).mouseleave(function() bool = false; ).mouseup(function() bool = false; ).mousemove(function(e) if (!bool) return; var offsetX = $dialog.data(offsetX); var offsetY = $dialog.data(offsetY); var left = $dialog.data(left); var top = $dialog.data(top); v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 张家口市人民医院模型分析技术考核
- 2025广西玉林北流市中医医院公开招聘21人模拟试卷及完整答案详解一套
- 上海市中医院产科超声引导下手术操作考核
- 2025年临沂兰陵县教育系统部分事业单位公开招聘教师(5人)考前自测高频考点模拟试题及答案详解(夺冠)
- 2025河南郑州市新郑市面向社会聘任政务服务社会监督员、政务服务体验员10人考前自测高频考点模拟试题及参考答案详解
- 衡水市中医院浅表疑难病例B超考核
- 邢台市人民医院输血科与临床科室沟通协作机制
- 2025年甘肃警察学院考核招聘急需紧缺专业人才考前自测高频考点模拟试题及参考答案详解一套
- 2025年河南省社会科学院招聘高层次人才模拟试卷及完整答案详解
- 石家庄市人民医院应对网络安全事件指挥能力评估
- 医疗机构麻醉药品和精神药品使用管理和考核培训规定
- 主题一 4. 创建我们的“健康银行”(课件) 综合实践活动教科版五年级上册
- 2025农村果园租赁合同示范文本
- 人教版二年级数学上册第二单元 1~6的表内乘法必刷卷 (含答案)
- 公司财务流程透明化披露方案模板
- 法院反诈骗法律知识培训课件
- 2025年执业药师考试题库大全-附答案
- 2024年下半年黑龙江省嫩江铁路有限责任公司校招笔试题带答案
- 2025年两类人员安全考试题及答案
- 伟星PPR培训课件
- 小学语文高段课标解读
评论
0/150
提交评论