Dialog Widgetversion added: 1.0
Description: 在一个交互覆盖层中打开内容。
对话框是一个悬浮窗口,包括一个标题栏和一个内容区域。对话框窗口可以移动,重新调整大小,默认情况下通过 'x' 图标关闭。
如果内容长度超过最大高度,一个滚动条会自动出现。
一个底部按钮栏和一个半透明的模式覆盖层是常见的添加选项。
焦点
当打开一个对话框时,焦点会自动移动到满足下面条件的第一个项目:
当打开时,对话框部件(Dialog Widget)确保通过 tab 切换对话框内元素间的焦点,不包括对话框外的元素。模态对话框防止鼠标用户点击对话框外的元素。
当关闭对话框时,焦点自动返回到之前对话框打开时获得焦点的元素上。
隐藏关闭按钮
在一些情况下,您可能想要隐藏关闭按钮,例如,在按钮面板中已经有一个关闭按钮的情况。最好的解决方法是通过 CSS。作为实例,您可以定义一个简单的规则,比如:
1 2 3 |
|
然后,您可以添加 no-close class 到任意的对话框,用来隐藏关闭按钮:
1 2 3 4 5 6 7 8 9 10 11 |
|
主题
对话框部件(Dialog Widget)使用 jQuery UI CSS 框架 来定义它的外观和感观的样式。如果需要使用对话框指定的样式,则可以使用下面的 CSS class 名称:
ui-dialog:对话框的外层容器。ui-dialog-buttonset:按钮周围的容器。ui-dialog-title:对话框文本标题周围的容器。ui-dialog-titlebar-close:对话框的关闭按钮。ui-dialog-titlebar:包含对话框标题和关闭按钮的标题栏。ui-dialog-content:对话框内容周围的容器。这也是部件被实例化的元素。ui-dialog-buttonpane:包含对话按钮的面板。只有当设置了buttons选项时才呈现。
此外,当设置了 modal 选项时,一个带有 ui-widget-overlay class 名称的元素被追加到 <body>。
依赖
可拖拽小部件(Draggable Widget) (可选的;当与
draggable选项一起使用时)可调整尺寸小部件(Resizable Widget) (可选的;当与
resizable选项一起使用时)特效核心(Effects Core)(可选的;当与
show和hide选项一起使用时)
其他注意事项:
该部件要求一些功能性的 CSS,否则将无法工作。如果您创建了一个自定义的主题,请使用小部件指定的 CSS 文件作为起点。
Options
appendToType: Selector
"body"初始化带有指定 appendTo选项的 dialog:
1 |
|
在初始化后,获取或设置appendTo 选项:
1 2 3 4 5 |
|
autoOpenType: Boolean
true初始化带有指定 autoOpen选项的 dialog:
1 |
|
在初始化后,获取或设置autoOpen 选项:
1 2 3 4 5 |
|
closeOnEscapeType: Boolean
true初始化带有指定 closeOnEscape选项的 dialog:
1 |
|
在初始化后,获取或设置closeOnEscape 选项:
1 2 3 4 5 |
|
closeTextType: String
"close"初始化带有指定 closeText选项的 dialog:
1 |
|
在初始化后,获取或设置closeText 选项:
1 2 3 4 5 |
|
dialogClassType: String
""初始化带有指定 dialogClass选项的 dialog:
1 |
|
在初始化后,获取或设置dialogClass 选项:
1 2 3 4 5 |
|
draggableType: Boolean
truetrue, dialog将可以使用标题栏实现拖动。需要包含 jQuery UI Draggable 部件。初始化带有指定 draggable选项的 dialog:
1 |
|
在初始化后,获取或设置draggable 选项:
1 2 3 4 5 |
|
heightType: Number or String
"auto"Number: 高度,单位:像素。
String: 唯一支持的字符串值为
"auto",这将使对话框高度根据其内容进行自动调整。
初始化带有指定 height选项的 dialog:
1 |
|
在初始化后,获取或设置height 选项:
1 2 3 4 5 |
|
hideType: Boolean or Number or String or Object
nullBoolean: 当设置为
false, 将不使用动画效果,该dialog会立即被隐藏。 如果设置为true, 该dialog将会以默认的持续时间和默认的效果淡出。Number: 该dialog将以指定的时间和默认的效果淡出。
String: 该dialog将使用指定的效果被隐藏。 该值可以是一个jQuery内置的动画方法的名称, 如
"slideUp", 或一个 jQuery UI 效果的名称, 如"fold"。 在这两种情况下,将使用默认持续时间和默认的动画效果。Object: 如果该值是一个对象, 那么
effect,delay,duration, 和easing可能要提供。 如果effect属性包含一个jQuery方法的名称, 那么该方法将被使用; 否则它被假定为是一个jQuery UI的效果的名称。 当使用jQuery UI 支持额外设置 的效果 , 你可以在对象中包含那些设置 并且它们将被传递到的效果。如果duration持续时间或easing属性被省略, 那么默认值将被使用。 如果effect被省略, 那么"fadeOut"将被使用。如果delay被省略, 那么将不使用延迟。
初始化带有指定 hide选项的 dialog:
1 |
|
在初始化后,获取或设置hide 选项:
1 2 3 4 5 |
|
maxHeightType: Number
false初始化带有指定 maxHeight选项的 dialog:
1 |
|
在初始化后,获取或设置maxHeight 选项:
1 2 3 4 5 |
|
maxWidthType: Number
false初始化带有指定 maxWidth选项的 dialog:
1 |
|
在初始化后,获取或设置maxWidth 选项:
1 2 3 4 5 |
|
minHeightType: Number
150初始化带有指定 minHeight选项的 dialog:
1 |
|
在初始化后,获取或设置minHeight 选项:
1 2 3 4 5 |
|
minWidthType: Number
150初始化带有指定 minWidth选项的 dialog:
1 |
|
在初始化后,获取或设置minWidth 选项:
1 2 3 4 5 |
|
modalType: Boolean
falsetrue,该dialog将会有遮罩层; 页面上的其他项目将被禁用, 即,不能交互。 遮罩层创建对话框下方,但高于其它页面元素。初始化带有指定 modal选项的 dialog:
1 |
|
在初始化后,获取或设置modal 选项:
1 2 3 4 5 |
|
positionType: Object or String or Array
{ my: "center", at: "center", of: window }指定dialog显示的位置。该dialog将会处理冲突 ,使得尽可能多的dialog尽可能地可见。
注意: 不赞成使用 String 和 Array 格式。
Object: 确定dialog打开时的位置。
of选项默认为窗口, 但您可以指定其他元素定位。 你可以参考jQuery UI Position实用工具,了解各种选项的更多细节。String:一个字符串,表示可视区内的位置。可能的值:
"center","left","right","top","bottom".Array: 一个包含相对于可见区域左上角x, y偏移坐标(单位为像素) 的数组, 或 一个可能值的字符串名称。
初始化带有指定 position选项的 dialog:
1 |
|
在初始化后,获取或设置position 选项:
1 2 3 4 5 |
|
resizableType: Boolean
truetrue, 那么dialog允许调整大小。需要包含jQuery UI Resizable widget。初始化带有指定 resizable选项的 dialog:
1 |
|
在初始化后,获取或设置resizable 选项:
1 2 3 4 5 |
|
showType: Boolean or Number or String or Object
nullBoolean: 当设置为
false, 将不使用动画效果,该dialog会立即被隐藏。 如果设置为true, 该dialog将会以默认的持续时间和默认的效果淡出。Number: 该dialog将以指定的时间和默认的效果淡出。
String: 该dialog将使用指定的效果被隐藏。 该值可以是一个jQuery内置的动画方法的名称, 如
"slideUp", 或一个 jQuery UI 效果的名称, 如"fold"。 在这两种情况下,将使用默认持续时间和默认的动画效果。Object: 如果该值是一个对象, 那么
effect,delay,duration, 和easing可能要提供。 如果effect属性包含一个jQuery方法的名称, 那么该方法将被使用; 否则它被假定为是一个jQuery UI的效果的名称。 当使用jQuery UI 支持额外设置 的效果 , 你可以在对象中包含那些设置 并且它们将被传递到的效果。如果duration持续时间或easing属性被省略, 那么默认值将被使用。 如果effect被省略, 那么"fadeOut"将被使用。如果delay被省略, 那么将不使用延迟。
初始化带有指定 show选项的 dialog:
1 |
|
在初始化后,获取或设置show 选项:
1 2 3 4 5 |
|
titleType: String
nullnull,那么该dialog 元素上的title属性将被使用。初始化带有指定 title选项的 dialog:
1 |
|
在初始化后,获取或设置title 选项:
1 2 3 4 5 |
|
widthType: Number
300初始化带有指定 width选项的 dialog:
1 |
|
在初始化后,获取或设置width 选项:
1 2 3 4 5 |
|
Methods
close()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用 close 方法:
1 |
|
destroy()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用 destroy 方法:
1 |
|
isOpen()Returns: Boolean
- 该方法不接受任何参数。
调用 isOpen 方法:
1 |
|
moveToTop()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用 moveToTop 方法:
1 |
|
open()Returns: jQuery (plugin only)
- 该方法不接受任何参数。
调用 open 方法:
1 |
|
option( optionName )Returns: Object
optionName 关联的值。- optionNameType: String要获取值的选项的名称。
调用该方法:
1 |
|
option()Returns: PlainObject
- 该方法不接受任何参数。
调用该方法:
1 |
|
option( optionName, value )Returns: jQuery (plugin only)
optionName 关联的 dialog 选项的值。调用该方法:
1 |
|
option( options )Returns: jQuery (plugin only)
- optionsType: Object要设置的 option-value 对。
调用该方法:
1 |
|
widget()Returns: jQuery
jQuery 对象。- 该方法不接受任何参数。
调用 widget 方法:
1 |
|
扩展点(Extension Points)
dialog小部件是widget factory构建的,并且可以扩展。 当扩展部件时, 你必须覆盖或添加新的行为到现有的方法。 下列方法被提供作为扩展点 用相同的API稳定性如上所列的plugin methods。 有关小部件扩展的更多信息, 请参阅使用Widget Factory 扩展小部件。
_allowInteraction( event )Returns: Boolean
_allowInteraction()方法确定用户是否应被允许与给定的目标元素进行交互; 因此, 它可用于不属于该dialog的子元素白名单中的元素 但你希望用户能够使用。- eventType: Event
允许Select2插件在遮罩对话框中使用。 _super()调用确保该对话框中的元素仍然可以交互。
1 2 3 |
|
Events
beforeClose( event, ui )Type: dialogbeforeclose
注意:ui 对象是空的,这里包含它是为了与其他事件保持一致性。
初始化带有指定 beforeClose 回调的 dialog:
1 2 3 |
|
绑定一个事件监听器到 dialogbeforeclose 事件:
1 |
|
close( event, ui )Type: dialogclose
注意:ui 对象是空的,这里包含它是为了与其他事件保持一致性。
初始化带有指定 close 回调的 dialog:
1 2 3 |
|
绑定一个事件监听器到 dialogclose 事件:
1 |
|
create( event, ui )Type: dialogcreate
注意:ui 对象是空的,这里包含它是为了与其他事件保持一致性。
初始化带有指定 create 回调的 dialog:
1 2 3 |
|
绑定一个事件监听器到 dialogcreate 事件:
1 |
|
drag( event, ui )Type: dialogdrag
初始化带有指定 drag 回调的 dialog:
1 2 3 |
|
绑定一个事件监听器到 dialogdrag 事件:
1 |
|
dragStart( event, ui )Type: dialogdragstart
初始化带有指定 dragStart 回调的 dialog:
1 2 3 |
|
绑定一个事件监听器到 dialogdragstart 事件:
1 |
|
dragStop( event, ui )Type: dialogdragstop
初始化带有指定 dragStop 回调的 dialog:
1 2 3 |
|
绑定一个事件监听器到 dialogdragstop 事件:
1 |
|
focus( event, ui )Type: dialogfocus
注意:ui 对象是空的,这里包含它是为了与其他事件保持一致性。
初始化带有指定 focus 回调的 dialog:
1 2 3 |
|
绑定一个事件监听器到 dialogfocus 事件:
1 |
|
open( event, ui )Type: dialogopen
注意:ui 对象是空的,这里包含它是为了与其他事件保持一致性。
初始化带有指定 open 回调的 dialog:
1 2 3 |
|
绑定一个事件监听器到 dialogopen 事件:
1 |
|
resize( event, ui )Type: dialogresize
初始化带有指定 resize 回调的 dialog:
1 2 3 |
|
绑定一个事件监听器到 dialogresize 事件:
1 |
|
resizeStart( event, ui )Type: dialogresizestart
初始化带有指定 resizeStart 回调的 dialog:
1 2 3 |
|
绑定一个事件监听器到 dialogresizestart 事件:
1 |
|
resizeStop( event, ui )Type: dialogresizestop
初始化带有指定 resizeStop 回调的 dialog:
1 2 3 |
|
绑定一个事件监听器到 dialogresizestop 事件:
1 |
|
Example:
一个简单的 jQuery UI 对话框(Dialog)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|