热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jqueryui中的dialog,官网上经典的例子jqueryui中的dialog,官网上经典的例子

 jqueryui中dialog和easyui中的dialog很像,但是最近用到的时候全然没有印象,一段时间不用就忘记了,这篇随笔介绍一下这个控件。1.实例官网源代码中给出了一些实例,首先看看实例是什么样子的。 a.默认功能也是最简单的应用,也就是打开一个对话框,代码如下<!doctypehtml><html
 

jquery ui中dialog和easy ui中的dialog很像,但是最近用到的时候全然没有印象,一段时间不用就忘记了,这篇随笔介绍一下这个控件。

1.实例

官网源代码中给出了一些实例,首先看看实例是什么样子的。

 

a.默认功能

也是最简单的应用,也就是打开一个对话框,代码如下

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子


    
    
    
    
    
    
    
    
    
    
    
    
    
    



This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.

The basic dialog window is an overlay positioned within the viewport and is protected from page content (like select elements) shining through with an iframe. It has a title bar and a content area, and can be moved, resized and closed with the 'x' icon by default.

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子

引用了一堆的js文件,这个与下载的时候选择的类型有关,可以选择All jQuery UI Downloads,也可以在当前页面选择要用到的组件下载。关键代码$( "#dialog" ).dialog();,加载页面的时候弹出一个对话框。效果如下图1

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图1

 

b.模态对话框

关键代码如下:

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
    $(function() {
        $( "#dialog-message" ).dialog({
            modal: true,
            buttons: {
                Ok: function() {
                    $( this ).dialog( "close" );
                }
            }
        });
    });
jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子

作用是弹出一个模态对话框,mode:true,其实就是后面不能回到后面的父页面,除非关闭当前的对话框。在对话框后面加了一个OK关闭按钮,效果如下图2

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图2

 

c.确认对话框

关键代码如下:

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
    $(function() {
        $( "#dialog-confirm" ).dialog({
            resizable: false,
            height: "auto",
            width: 400,
            modal: true,
            buttons: {
                "Delete all items": function() {
            //这里可以加入一些操作 $( this ).dialog( "close" ); }, Cancel: function() { $( this ).dialog( "close" ); } } }); });
jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子

加了两个按钮,一个确认,一个取消,可以分别做一些操作,其实也不限于这两个按钮,如果需要的话可以在下面添加任意多个按钮,实现任意多的功能。效果如下如3

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图3

带form功能的对话框

这个例子有些复杂,可以实现验证,请求等功能,关键代码如下

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子


    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    



All form fields are required.

Existing Users:

Name Email Password
John Doe john.doe@example.com johndoe1

Use a modal dialog to require that the user enter data during a multi-step process. Embed form markup in the content area, set the modal option to true, and specify primary and secondary user actions with the buttons option.

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子

这个是带请求功能的对话框,代码很严谨

var dialog, form,
emailRegex = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,
name = $( "#name" ),
email = $( "#email" ),
password = $( "#password" ),
allFields = $( [] ).add( name ).add( email ).add( password ),
tips = $( ".validateTips" );

定义元素变量,要用到的验证,allFields = $( [] ).add( name ).add( email ).add( password ),这个用来把要用到的变量加到集合里面,用来添加和删除css样式,后面会用到的,很巧妙,$( [] )这个写法可以把多个元素添加到一个集合中。

function updateTips( t ) {
tips
.text( t )
.addClass( "ui-state-highlight" );
setTimeout(function() {
tips.removeClass( "ui-state-highlight", 1500 );
}, 500 );
}

给元素添加文字和css样式,并且在500毫秒内移除这个样式,不明白.removeClass( "ui-state-highlight", 1500 )后面一个参数1500是什么意思

function checkLength( o, n, min, max ) {
if ( o.val().length > max || o.val().length o.addClass( "ui-state-error" );
updateTips( "Length of " + n + " must be between " +
min + " and " + max + "." );
return false;
} else {
return true;
}
}

检查输入文字的长短,4个参数分别是元素本身,元素名称,最小长度,最大长度。

function checkRegexp( o, regexp, n ) {
if ( !( regexp.test( o.val() ) ) ) {
o.addClass( "ui-state-error" );
updateTips( n );
return false;
} else {
return true;
}
}

用正则表达式检查元素是否符合规则,3个参数,元素本身,正则表达式,错误提示。

function addUser() {
var valid = true;
allFields.removeClass( "ui-state-error" );

valid = valid && checkLength( name, "username", 3, 16 );
valid = valid && checkLength( email, "email", 6, 80 );
valid = valid && checkLength( password, "password", 5, 16 );

valid = valid && checkRegexp( name, /^[a-z]([0-9a-z_\s])+$/i, "Username may consist of a-z, 0-9, underscores, spaces and must begin with a letter." );
valid = valid && checkRegexp( email, emailRegex, "eg. ui@jquery.com" );
valid = valid && checkRegexp( password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9" );

if ( valid ) {
$( "#users tbody" ).append( "" +
"" + name.val() + "" +
"" + email.val() + "" +
"" + password.val() + "" +
"" );
dialog.dialog( "close" );
}
return valid;
}

添加用户的方法,验证方法valid = valid && 这个用的很巧妙,连续利用了&&操作,这里的写法非常的灵活也很巧妙。在这里可以实现具体的功能,也可以在form里面添加action,form到具体页面中操作。

dialog = $( "#dialog-form" ).dialog({
autoOpen: false,
height: 400,
width: 350,
modal: true,
buttons: {
"Create an account": addUser,
Cancel: function() {
dialog.dialog( "close" );
}
},
close: function() {
form[ 0 ].reset();
allFields.removeClass( "ui-state-error" );
}
});

这里才是最主要的功能,一个定义一个对话框,其中有个2个按钮,一个是添加一个账号,访问addUser函数,一个是取消,直接定义关闭对话框,最后还定义了默认的关闭功能,form中清除元素的值,清除错误提示。

form = dialog.find( "form" ).on( "submit", function( event ) {
event.preventDefault();
addUser();
});

定义form,其实就是页面中的form,还定义了提交时请求动作,首先取消默认事件,然后执行addUser。

$( "#create-user" ).button().on( "click", function() {
dialog.dialog( "open" );
});

给添加用户按钮绑定事件,这里绑定事件没有直接.click,也没有live,也没有trigger,on是jquery官方推荐的一个绑定函数方法。注意这里不是页面加载的时候就显示对话框,而是点击添加账号的时候弹出这个对话框,所以要先定义这个对话框“dialog = $( "#dialog-form" ).dialog({”,点击添加按钮的时候弹出对话框“dialog.dialog( "open" );”。

页面截图如下图4

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图4

点击添加用户弹出对话框如图5

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图5

元素验证失败时截图如图6

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图6

这个例子很经典!

d.带动画功能的对话框

关键代码如下:

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
    $(function() {
        $( "#dialog" ).dialog({
            autoOpen: false,
            show: {
                effect: "blind",
                duration: 1000
            },
            hide: {
                effect: "explode",
                duration: 1000
            }
        });

        $( "#opener" ).click(function() {
            $( "#dialog" ).dialog( "open" );
        });
    });
jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子

定义显示和影藏效果,effect: "blind":打开时时百叶窗效果,从上到下显示,effect: "explode"关闭时是爆发,碎片效果。

百叶窗效果如下图7

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图7

爆炸效果如图8

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图8

同上,注意这里不是页面加载的时候就显示对话框,而是点击添加账号的时候弹出这个对话框,所以要先定义这个对话框“$( "#dialog" ).dialog({,”,点击添加按钮的时候弹出对话框“dialog.dialog( "open" );”

 

2.属性,事件,方法

关于属性,事件和方法内容很多,可以查看中文文档http://jqueryui.net/dialog/

jquery ui中dialog和easy ui中的dialog很像,但是最近用到的时候全然没有印象,一段时间不用就忘记了,这篇随笔介绍一下这个控件。

1.实例

官网源代码中给出了一些实例,首先看看实例是什么样子的。

 

a.默认功能

也是最简单的应用,也就是打开一个对话框,代码如下

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子


    
    
    
    
    
    
    
    
    
    
    
    
    
    



This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.

The basic dialog window is an overlay positioned within the viewport and is protected from page content (like select elements) shining through with an iframe. It has a title bar and a content area, and can be moved, resized and closed with the 'x' icon by default.

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子

引用了一堆的js文件,这个与下载的时候选择的类型有关,可以选择All jQuery UI Downloads,也可以在当前页面选择要用到的组件下载。关键代码$( "#dialog" ).dialog();,加载页面的时候弹出一个对话框。效果如下图1

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图1

 

b.模态对话框

关键代码如下:

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
    $(function() {
        $( "#dialog-message" ).dialog({
            modal: true,
            buttons: {
                Ok: function() {
                    $( this ).dialog( "close" );
                }
            }
        });
    });
jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子

作用是弹出一个模态对话框,mode:true,其实就是后面不能回到后面的父页面,除非关闭当前的对话框。在对话框后面加了一个OK关闭按钮,效果如下图2

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图2

 

c.确认对话框

关键代码如下:

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
    $(function() {
        $( "#dialog-confirm" ).dialog({
            resizable: false,
            height: "auto",
            width: 400,
            modal: true,
            buttons: {
                "Delete all items": function() {
            //这里可以加入一些操作 $( this ).dialog( "close" ); }, Cancel: function() { $( this ).dialog( "close" ); } } }); });
jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子

加了两个按钮,一个确认,一个取消,可以分别做一些操作,其实也不限于这两个按钮,如果需要的话可以在下面添加任意多个按钮,实现任意多的功能。效果如下如3

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图3

带form功能的对话框

这个例子有些复杂,可以实现验证,请求等功能,关键代码如下

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子


    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    



All form fields are required.

Existing Users:

Name Email Password
John Doe john.doe@example.com johndoe1

Use a modal dialog to require that the user enter data during a multi-step process. Embed form markup in the content area, set the modal option to true, and specify primary and secondary user actions with the buttons option.

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子

这个是带请求功能的对话框,代码很严谨

var dialog, form,
emailRegex = /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,
name = $( "#name" ),
email = $( "#email" ),
password = $( "#password" ),
allFields = $( [] ).add( name ).add( email ).add( password ),
tips = $( ".validateTips" );

定义元素变量,要用到的验证,allFields = $( [] ).add( name ).add( email ).add( password ),这个用来把要用到的变量加到集合里面,用来添加和删除css样式,后面会用到的,很巧妙,$( [] )这个写法可以把多个元素添加到一个集合中。

function updateTips( t ) {
tips
.text( t )
.addClass( "ui-state-highlight" );
setTimeout(function() {
tips.removeClass( "ui-state-highlight", 1500 );
}, 500 );
}

给元素添加文字和css样式,并且在500毫秒内移除这个样式,不明白.removeClass( "ui-state-highlight", 1500 )后面一个参数1500是什么意思

function checkLength( o, n, min, max ) {
if ( o.val().length > max || o.val().length o.addClass( "ui-state-error" );
updateTips( "Length of " + n + " must be between " +
min + " and " + max + "." );
return false;
} else {
return true;
}
}

检查输入文字的长短,4个参数分别是元素本身,元素名称,最小长度,最大长度。

function checkRegexp( o, regexp, n ) {
if ( !( regexp.test( o.val() ) ) ) {
o.addClass( "ui-state-error" );
updateTips( n );
return false;
} else {
return true;
}
}

用正则表达式检查元素是否符合规则,3个参数,元素本身,正则表达式,错误提示。

function addUser() {
var valid = true;
allFields.removeClass( "ui-state-error" );

valid = valid && checkLength( name, "username", 3, 16 );
valid = valid && checkLength( email, "email", 6, 80 );
valid = valid && checkLength( password, "password", 5, 16 );

valid = valid && checkRegexp( name, /^[a-z]([0-9a-z_\s])+$/i, "Username may consist of a-z, 0-9, underscores, spaces and must begin with a letter." );
valid = valid && checkRegexp( email, emailRegex, "eg. ui@jquery.com" );
valid = valid && checkRegexp( password, /^([0-9a-zA-Z])+$/, "Password field only allow : a-z 0-9" );

if ( valid ) {
$( "#users tbody" ).append( "" +
"" + name.val() + "" +
"" + email.val() + "" +
"" + password.val() + "" +
"" );
dialog.dialog( "close" );
}
return valid;
}

添加用户的方法,验证方法valid = valid && 这个用的很巧妙,连续利用了&&操作,这里的写法非常的灵活也很巧妙。在这里可以实现具体的功能,也可以在form里面添加action,form到具体页面中操作。

dialog = $( "#dialog-form" ).dialog({
autoOpen: false,
height: 400,
width: 350,
modal: true,
buttons: {
"Create an account": addUser,
Cancel: function() {
dialog.dialog( "close" );
}
},
close: function() {
form[ 0 ].reset();
allFields.removeClass( "ui-state-error" );
}
});

这里才是最主要的功能,一个定义一个对话框,其中有个2个按钮,一个是添加一个账号,访问addUser函数,一个是取消,直接定义关闭对话框,最后还定义了默认的关闭功能,form中清除元素的值,清除错误提示。

form = dialog.find( "form" ).on( "submit", function( event ) {
event.preventDefault();
addUser();
});

定义form,其实就是页面中的form,还定义了提交时请求动作,首先取消默认事件,然后执行addUser。

$( "#create-user" ).button().on( "click", function() {
dialog.dialog( "open" );
});

给添加用户按钮绑定事件,这里绑定事件没有直接.click,也没有live,也没有trigger,on是jquery官方推荐的一个绑定函数方法。注意这里不是页面加载的时候就显示对话框,而是点击添加账号的时候弹出这个对话框,所以要先定义这个对话框“dialog = $( "#dialog-form" ).dialog({”,点击添加按钮的时候弹出对话框“dialog.dialog( "open" );”。

页面截图如下图4

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图4

点击添加用户弹出对话框如图5

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图5

元素验证失败时截图如图6

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图6

这个例子很经典!

d.带动画功能的对话框

关键代码如下:

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
    $(function() {
        $( "#dialog" ).dialog({
            autoOpen: false,
            show: {
                effect: "blind",
                duration: 1000
            },
            hide: {
                effect: "explode",
                duration: 1000
            }
        });

        $( "#opener" ).click(function() {
            $( "#dialog" ).dialog( "open" );
        });
    });
jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子

定义显示和影藏效果,effect: "blind":打开时时百叶窗效果,从上到下显示,effect: "explode"关闭时是爆发,碎片效果。

百叶窗效果如下图7

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图7

爆炸效果如图8

jquery ui中的dialog,官网上经典的例子
    

jquery ui中的dialog,官网上经典的例子
图8

同上,注意这里不是页面加载的时候就显示对话框,而是点击添加账号的时候弹出这个对话框,所以要先定义这个对话框“$( "#dialog" ).dialog({,”,点击添加按钮的时候弹出对话框“dialog.dialog( "open" );”

 

2.属性,事件,方法

关于属性,事件和方法内容很多,可以查看中文文档http://jqueryui.net/dialog/


推荐阅读
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 几何画板展示电场线与等势面的交互关系
    几何画板是一款功能强大的物理教学软件,具备丰富的绘图和度量工具。它不仅能够模拟物理实验过程,还能通过定量分析揭示物理现象背后的规律,尤其适用于难以在实际实验中展示的内容。本文将介绍如何使用几何画板演示电场线与等势面之间的关系。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 作为一名新手,您可能会在初次尝试使用Eclipse进行Struts开发时遇到一些挑战。本文将为您提供详细的指导和解决方案,帮助您克服常见的配置和操作难题。 ... [详细]
  • 本文介绍如何使用阿里云的fastjson库解析包含时间戳、IP地址和参数等信息的JSON格式文本,并进行数据处理和保存。 ... [详细]
  • andr ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • Android 渐变圆环加载控件实现
    本文介绍了如何在 Android 中创建一个自定义的渐变圆环加载控件,该控件已在多个知名应用中使用。我们将详细探讨其工作原理和实现方法。 ... [详细]
  • 解决网站乱码问题的综合指南
    本文总结了导致网站乱码的常见原因,并提供了详细的解决方案,包括文件编码、HTML元标签设置、服务器响应头配置、数据库字符集调整以及PHP与MySQL交互时的编码处理。 ... [详细]
author-avatar
手机用户2502862191
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有