JQuery Dialog(JS模态窗口,可拖拽的DIV) 效果实现代码
效果图
调用示意图
交互示意图
如上图所示,这基本是JQueryDialog的完整逻辑流程了。
1、用户点击模态窗口的“提交”按钮时,调用JQueryDialog.Ok()函数,这个函数对应了用户提交事件。
2、用OO的概念来说,JQueryDialog.Ok()其实是一个虚函数,它的逻辑封装在子窗口ContentWindow.Ok()中,这一点我借鉴了FCKEditor,如下代码所示:
JS代码
复制代码 代码如下:
var JQueryDialog = {
/// <summary>提交</summary>
/// <remark></remark>
Ok:function(){
var frm = $("#jd_iframe");
if (frm[0].contentWindow.Ok()){
JqueryDialog.Close() ;
}
else{
frm[0].focus() ;
}
}
};
所以Iframe到Dialog的每个子页面必须定义函数Ok,以供父窗口调用,并返回true或false来通知父窗口Dialog是否关闭。
3、 通常在ContentWindow中会包含服务端的处理逻辑,这就需要通过POST与服务端交互,因为ContentWindow本身不包含"提交"按钮,所以如果要POST就必需在ContentWindow.Ok()中自己写submit()了。
4、最后,服务端逻辑执行完成,控制权需交回Dialog。于是我封装了JQueryDialog.SubmitCompleted(),其中包含三个参数供Dialog进行最后的逻辑处理:是否弹出消息以及消息内容,是否关闭Dialog,是否刷新父窗口。这个函数也得益于FCKEditor,如下所示:
JS代码
复制代码 代码如下:
var JQueryDialog = {
/// <summary>提交完成</summary>
/// <param name="alertMsg">弹出提示内容,值为空不弹出</param>
/// <param name="isCloseDialog">是否关闭对话框</param>
/// <param name="isRefreshPage">是否刷新页面(关闭对话框为true时有效)</param>
SubmitCompleted:function(alertMsg, isCloseDialog, isRefreshPage){
if($.trim(alertMsg).length > 0 ){
alert(alertMsg);
}
if(isCloseDialog){
JqueryDialog.Close();
if(isRefreshPage){
window.location.href = window.location.href;
}
}
}
};
5、结果响应,对用户呈现。
详细出处参考:http://www.jb51.net/article/21999.htm
DEMO http://demo.jb51.net/js/jquery_dialog/default.html
点击下载
详细出处参考:http://www.jb51.net/article/21999.htm
最新文章
- 如何解决子元素设了margin-top之后父元素所受的影响
- D3的参考样例
- Django Web补充
- AngularJS指令的详解
- 【转载】芯片级拆解51、AVR、MSP430、凌阳61、PIC,5种单片机,多张显微照片
- IOS UILabel 根据内容自适应高度
- HTML列表-框架
- adId、idfv
- PostgreSQL的存储系统二:REDOLOG文件存储结构二
- MVC模型部分验证
- java设计模式之十桥接模式(Bridge)
- app外包开发注意事项大全『最新』
- linux压缩及vi操作
- C#工具:汉字转拼音帮助类
- React系列文章:JSX生成真实DOM结点
- Leetcode 1003. 检查替换后的词是否有效
- SQL Server 2016/2014/2012/2008/2005/2000简体中文企业版下载地址
- pymongo的几个操作
- AJAX.basic
- 花瓶使用笔记 (抓数据时,记得添加host,不然抓不了包的)
热门文章
- ubuntu server 14.04 vncserver with gnome
- zookeeper 集群 Cannot open channel to X at election address Error contacting service. It is probably not running.
- Python入门基础教程(儿童版) [分享一本入门级教程]
- android scrollview组件禁止滑动的方法
- 赵雅智_ListView_BaseAdapter
- 3DS MAX 导出FBX到Unity3D设置
- [Angular 2] Pipes with Multiple Parameters
- CSS控制LI行字符溢出用省略号取代
- linux 下 apt命令集详解
- C++ XML 解释库