习惯上,我们播放一条简短的信息,或向浏览者询问一个问题,都会用到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. 智能硬件+App移动新生态【北京、广州、深圳】

    智能硬件+App移动新生态[10.24北京站] 时间:2015年10月24日13:30-16:30 地点:Wepac空间(海淀区北四环西路68号左岸工社6层) 主办:APICloud.机智云.智石科技 ...

  2. shell中引用其他脚本的方法

    在Shell中引用其他脚本的方法是source   filename.sh 或    .    filename.sh 注意:      .   和   filename.sh之间必须有空格

  3. The L1 Median (Weber 1909)

    The L1 Median (Weber 1909) 链接网址 Derived from a transportation cost minimization problem, the L1 medi ...

  4. VS2013+qt-vs-addin-1.2.4安装配置

    --------------------------开头这部分可以跳过,仅作为笔记----------------------- 我问过的问题: http://www.codeproject.com/ ...

  5. 由浅到深讲解C#-LINQ

    在说LINQ之前必须先说说几个重要的C#语言特性 一:与LINQ有关的语言特性 1.隐式类型 (1)源起 在隐式类型出现之前, 我们在声明一个变量的时候, 总是要为一个变量指定他的类型 甚至在fore ...

  6. duplicate命令创建physical standby数据库报RMAN-03015 ORA-17628

    The following error is reported trying to create a Physical Standby database using "duplicate f ...

  7. System.Threading.Timer使用心得

    System.Threading.Timer 是一个使用回调方法的计时器,而且由线程池线程服务,简单且对资源要求不高. "只要在使用 Timer,就必须保留对它的引用."对于任何托 ...

  8. WEB urllib2 module note

    收藏好文,看的懂文档,但效率太慢 cookie 清空 import urllib2 import cookielib from time import sleep cookie=cookielib.C ...

  9. Dive into python 实例学python (1) —— 函数和测试

    odbchelper.py def buildConnectionString(params): """Build a connection string from a ...

  10. 实验十四_访问CMOS RAM

    编程:以"年/月/日 时:分:秒"的格式,显示当前的日期,时间. 注意:CMOS RAM中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元写入内容,否则将引起一些系 ...