习惯上,我们播放一条简短的信息,或向浏览者询问一个问题,都会用到dialog。

  • 创建一个基本的dialog
  • 使用dialog 选项
  • 形式
  • 启用内置动画
  • 给dialog添加按钮
  • 使用dialog回调函数
  • 编码的形式控制dialog

1 创建一个基本的dialog

$(function(){ $("#myDialog").dialog(); }); </script>

使用 jquery.ui.position.js后,dialog会自动居中。

使用 jquery.ui.draggable.js后,可以拖拽。

使用 jquery.ui.resizable.js后,可以重设大小。

1 dialog的选项

Option Default value Used to…
autoOpen true 当设为true时,dialog()方法一被调用就显示
buttons {} 支持一个包含button的对象。每个key会成为<button>的text,每个value会成为button点击时执行的回调函数
closeOnEscape true 如果设为true,按下ESC键能关闭dialog
closeText close 设置关闭按钮的text
dialogClass “” 出于主题的目的,为dialog设置额外的classnames
disable false 禁用控件
draggable true 在使用 jquery.ui.draggable.js 的情况下,使得dialog可以拖拽
height auto 设置dialog的初始高度
hide null 设置dialog被关闭时的效果
maxHeight false 设置最大高度
maxWidth false 设置最大宽度
minHeight 150 设置最小高度
minwidth 150 设置最小宽度
modal false 当dialog打开期间启用遮罩层
position center 在使用 jquery.ui.position.js 时,设置dialog在 viewport中的起始位置。可以接受一个字符串,一个字符串数组,一个包含相对于viewport的top 和left的精准坐标的数组,
resizable true 在使用 jquery.ui.resizable.js时,可调整大小
show null 设置dialog打开时的效果
stack true 当多个dialog打开时,时focused的dialog处于最前端
title “” 制定一个 title属性,可选地
width 300 设置dialog的其实宽度
zIndex 1000 设置空间起始的CSS z-index。当使用多个dialog,并且 stack选项设为true,每个dialog移动到stack前面时,z-index会改变

1.1 显示dialog

};

当autoOpen设为false时,页面加载后,dialog不会自动打开。

1.2 dialog的title

默认地,dialog的 title text 不能被选择,在操作系统的默认 tool tip style中,不会显示。给下层的元素使用 title 属性,text会出现在<span>元素中,这个<span>外层的<div>有 ui-dialog-titlebar 的classnames。这些属性会出现在控件的header中。

如果我们想给dialog 的DOM结构注入额外的元素,来展现额外的样式或不同的行为,我们可以使用title选项。

};

建议系统会播放OS tooltip,如果 title属性以这种方式被指定给一个控件的新元素。

1.3 遮罩层

dialog最伟大的资产之一是遮罩层。这个特性创建一个覆盖层,覆盖住下面的页面。当dialog打开时,任何页面上的东西都不能被交互。当dialog关闭时,覆盖层被移除。
这个特性最有益的是,需要关闭dialog才能使得页面再次可以被交互。并且为访问者提供了一个清晰的可视化指示器,在他们继续之前,dialog必须被交互。

var dialogOpts={
modal:true
};

完全由CSS framework创建的覆盖层,所以可以通过 ThemmeRoller 进行配置主题。我们也能使用自己的图片。ui-widget-overlay被加载覆盖层上,这个选择器是自定义时必须的。

1.4 添加按钮组

button 选项接受一个对象,用来指定不同的 button 元素如何呈现。每个 property:value pair代表一个单独的按钮。

var dialogOpts={
modal:true,
buttons:{
"OK":function(){},
"Cancel":function(){}
}
};

buttons对象中的 key 是 button的文本, value是按钮点击后,所执行的回调函数的名字。

1.5 启用dialog动画

var dialogOpts = {
show: true,
hide: true
};

启用内置的效果,会优雅地减小dialog的尺寸,并 透明知道它优雅地小时。

1.6 配置dialog的规模大小

var dialogOpts = {
width: 500,
height: 300,
minWidth: 150,
minHeight: 150,
maxWidth: 600,
maxHeight: 450
}

1.7 堆积

堆积属性被默认设为true,后最后调用dialog()方法的 对话框,会用友较高的 z-index,自动地处于前方。

2 dialog的事件模型

Event Fired when…
beforeclose dialog将要被关闭
close dialog被关闭
create dialog 被初始化
drag dialog被拖拽
dragStart dialog开始被拖拽
dragStop 停止被拖拽
focus 得到焦点
open 被打开
resize  
resizeStart  
resizeStop  
<div id="status" class="ui-widget ui-dialog ui-corner-all
<div class="ui-widget-header ui-dialog-titlebar
ui-corner-all">Dialog Status
$(function(){
var dialogOpts = {
open:function(){
$("#status").children(":last").text("The dialog is open");
},
close:function(){
$("#status").children(":last").text("The dialog is closed");
},
beforeclose:function(){
if(parseInt($(".ui-dialog").css("width"),10)>300){
returnfalse;
}
}
};
$("#myDialog").dialog(dialogOpts);
});
</script>

此处parseInt($(".ui-dialog").css("width"),10) 并不能获得 最终的 width。

dialog控件只传递一个单一的对象(原始事件对象)给回调函数,不传递第二个ui对象给handler函数。

3 以编码的方式控制dialog

Method Used to..
close 关闭或隐藏dialog
destroy 永远禁用dialog。destroy方法轻微的不同。与其他控件的destroy将下层HTML返回到原始状态相比,dialog的destroy方法仅仅是隐藏它
disable 临时禁用
enable 如果被禁用,启用它
isOpen 检测有没有打开
moveToTop 将指定dialog移动到stack的顶部
open  
option dialog初始化后,get 或 set 其配置选项
widget 返回调用 dialog() 方法的外层元素

3.1 切换dialog的状态

hello
$(function(){
var dialogOpts = {
autoOpen:false };
$("#myDialog").dialog(dialogOpts);
$("#button").click(function(){
if($("#myDialog").dialog("isOpen")){
$("#myDialog").dialog("close")
}
else{
$("#myDialog").dialog("open")
}
});
});
</script>

4 从dialog获取数据

因为控件是下层页面的一部分,所以传递和接收数据都很简单。

<p>Please answer the opinion poll:
<p>Is jQuery UI the greatest JavaScript widget library?
<label for="yes">Yes!
<label for="no">No!
$(function(){
var dialogOpts = {
buttons:{
"OK":function(){
var answer=$("#myDialog").find("input:checked").val();
$("<p>").text("Thanks for selecting "+answer).appendTo($("body"));
$("#myDialog").dialog("close");
},
"Cancel":function(){
$("#myDialog").dialog("close");
}
}
};
$("#myDialog").dialog(dialogOpts);
});
</script>

5 创建一个动态的基于图片的dialog

#thumbs { width:342px; padding:10px 0 10px 10px; border:1px solid #ccc; background-color:#eee; } #thumbs p { width:330px; font-family:Verdana; font-size:9px; text-align:center; } .thumb { width:310px; height:114px; padding:10px; border:1px solid #ccc; border-bottom:none; } .last { border-bottom:1px solid #ccc;} .thumb img { border:1px solid #ccc; margin-right:10px; float:left; cursor:pointer; } .thumb h3 { margin:0; float:left; width:198px;} #thumbs .thumb p { width:310px; margin:0; font-family:Verdana; font-size:13px; text-align:left; } #thumbs .ui-widget-header { width:330px; text-align:center;} $(function(){
var filename,
titleText,
dialogOpts={
modal:true,
width:388,
height:470,
autoOpen:false,
open:function(){
$("#dialog").empty();
$("<img />").attr("src",filename).appendTo("#dialog");
$("#dialog").dialog("option","title",titleText);
}
};
$("#dialog").dialog(dialogOpts);
$("#thumbs").find("a").click(function(e){
console.log("click");
e.preventDefault();
filename=$(this).attr("href");
console.log(filename);
titleText=$(this).attr("title");
$("#dialog").dialog("open");
});
});
</script>

首先,我们定义了三个变量,第一个是用来记录被点击的缩略图的全尺寸图片的路径,第二个是用来存储图片标题,作为空间的标题,第三个是dialog的配置对象。

open 选项的回调函数,会在dialog被打开前触发,所以我们可以把全尺寸图片加到dialog。

从<a>元素里取出其src时,应该用 attr(“href”)。用attr(“src”)的话取不到。

【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.6.Dialog控件的更多相关文章

  1. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.10.Button 和 Autocomplete控件

    Button ,可以使用 <button> <input> <a>. <input> 中的不同类型,submit , radio , checkbox ...

  2. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.8.Datepicker控件

    默认datepicker的安装启用 探索它的配置选项 安装启用一个触发按钮 配置一个供选择的动画 dateFormat选项 简单的国际化 多月datepicker 日期范围选择 datepicker的 ...

  3. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.7.Slider控件

    默认slider的安装启用 为slider自定义风格 修改配置选项 创建一个垂直的slider 设置最大最小值,和默认值 启用多个 手柄 和 范围 slider内置的回调事件 slider的方法 这个 ...

  4. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.5.Accordion控件

    accordion是另一个UI控件,能允许你将一组content加入相互分隔的.能够被浏览者的交互打开或关闭的panels中.因此,它大多数的content在初始化的时候是隐藏的,很像tabs控件.每 ...

  5. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.4.Tabs控件

    之前,我们已经介绍了 jQuery UI 库,CSS 框架.下面,我们将学习这些有增强可视化效果,高度可配置的用户交互组件. Tab 的特性是,点击 tab 后,会高亮该 tab,并显示他的关联con ...

  6. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.3.创建控件

    像jQuery提供 fn.extend() 方法从而可以简单地创建插件一样,jQuery UI也提供了机制使得创造插件变得简单,也确保了公共API功能在新的插件中被保留. 1.首先,创建一个名为  j ...

  7. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.2.更换主题

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  8. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.1.CSS框架和其他功能

    jquery.ui.all.css 1.所有主题必须的文件都包含在这个文件中.它由ui.base.css和ui.them.css两个文件中拉入的@import执行构成. jquery.ui.base. ...

  9. 【jQuery UI 1.8 The User Interface Library for jQuery】.学习笔记.9.Progressbar控件

    Progressbar控件用来显示任意进程的完成百分比. 默认安装启用 配置选项 控件暴露的事件API progressbar暴露的独一无二的方法 一些现实生活的例子 当前版本中,我们或系统必须明确进 ...

随机推荐

  1. 30天,APP创业从0到1【7.25上海站】

    活动概况 时间:2015年7月25日13:30-16:30 地点:太库•上海孵化器(张江金科路2889号长泰广场c座12楼) 主办:APICloud.诸葛.圣诺资讯 联合主办:微链.太库•上海孵化器 ...

  2. Java遇见HTML——JSP篇之JavaWeb简介

    一.什么是WEB应用程序 Web应用程序是一种可以通过Web(互联网)访问的应用程序.Web应用程序的一个最大好处是用户很容易访问应用程序.用户只需要有浏览器即可,不需要再安装其他软件. 为什么要学习 ...

  3. java类的加载、链接、初始化

    JVM和类的关系 当我们调用JAVA命令运行某个java程序时,该命令将会启动一条java虚拟机进程,不管该java程序有多么复杂,该程序启动了多少个线程,它们都处于该java虚拟机进程里.正如前面介 ...

  4. 发布自己的nuget包;报错source parameter was not specified

    16-10-27 VS下使用 程序包管理器控制台 运行: 1.cd 命令走到 工程文件夹下,使用 ls 命令查看当前目录: 2. 使用 nuget spec 创建: 3. 使用 nuget pack ...

  5. TCP/IP之TCP的建立与终止

    TCP协议简介 tcp/ip协议族中传输层最重要的两种协议是UDP和TCP协议,上一篇文章用很短的篇幅介绍完了UDP协议相关的内容,但相对于UDP而言的TCP协议,是种更复杂,应用更广的协议.在接下来 ...

  6. Synchronized及其实现原理

    并发编程中synchronized一直是元老级角色,我们称之为重量级锁.主要用在三个地方: 1.修饰普通方法,锁是当前实例对象. 2.修饰类方法,锁是当前类的Class对象. 3.修饰代码块,锁是sy ...

  7. java-语法

    JAVA语法 1.标识符 1.定义:对各种变量.方法.类等进行命名的字符序列 2.规则:他的组成由字母.数字.$,数字不能出现在开始,不能和关键字重复,区分大小写 2.数据类型 1.分类 1基本数据类 ...

  8. PHP和JS实现多按钮提交表单

    JS: <html> <head> <script> function submitit1() //交由程序1处理 { document.myForm.action ...

  9. hduoj 4706 Children&#39;s Day 2013 ACM/ICPC Asia Regional Online —— Warmup

    http://acm.hdu.edu.cn/showproblem.php?pid=4706 Children's Day Time Limit: 2000/1000 MS (Java/Others) ...

  10. Android 沉浸式状态栏

    1,传统的手机状态栏是呈现出黑色或者白色条状的,有的和手机主界面有很明显的区别.这样就在一定程度上牺牲了视觉宽度,界面面积变小.看一下QQ的应用 2,实现起来也挺简单的,来一起看一下吧 MainAct ...