💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
# jQuery UI API - 对话框部件(Dialog Widget) ## 所属类别 [小部件(Widgets)](ref-widgets.html) ## 用法 **描述:**在一个交互覆盖层中打开内容。 **版本新增:**1.0 对话框是一个悬浮窗口,包括一个标题栏和一个内容区域。对话框窗口可以移动,重新调整大小,默认情况下通过 'x' 图标关闭。 如果内容长度超过最大高度,一个滚动条会自动出现。 一个底部按钮栏和一个半透明的模式覆盖层是常见的添加选项。 ### 焦点 当打开一个对话框时,焦点会自动移动到满足下面条件的第一个项目: 1. 带有 `autofocus` 属性的对话框内的第一个元素 2. 对话框内容内的第一个 [`:tabbable`](api-tabbable-selector.html) 元素 3. 对话框按钮面板内的第一个 [`:tabbable`](api-tabbable-selector.html) 元素 4. 对话框的关闭按钮 5. 对话框本身 当打开时,对话框部件(Dialog Widget)确保通过 tab 切换对话框内元素间的焦点,不包括对话框外的元素。模态对话框防止鼠标用户点击对话框外的元素。 当关闭对话框时,焦点自动返回到之前对话框打开时获得焦点的元素上。 ### 隐藏关闭按钮 在一些情况下,您可能想要隐藏关闭按钮,例如,在按钮面板中已经有一个关闭按钮的情况。最好的解决方法是通过 CSS。作为实例,您可以定义一个简单的规则,比如: ``` .no-close .ui-dialog-titlebar-close { display: none; } ``` 然后,您可以添加 `no-close` class 到任意的对话框,用来隐藏关闭按钮: ``` $( "#dialog" ).dialog({ dialogClass: "no-close", buttons: [ { text: "OK", click: function() { $( this ).dialog( "close" ); } } ] }); ``` ### 主题化 对话框部件(Dialog Widget)使用 [jQuery UI CSS 框架](api-css-framework.html) 来定义它的外观和感观的样式。如果需要使用对话框指定的样式,则可以使用下面的 CSS class 名称: * `ui-dialog`:对话框的外层容器。 * `ui-dialog-titlebar`:包含对话框标题和关闭按钮的标题栏。 * `ui-dialog-title`:对话框文本标题周围的容器。 * `ui-dialog-titlebar-close`:对话框的关闭按钮。 * `ui-dialog-content`:对话框内容周围的容器。这也是部件被实例化的元素。 * `ui-dialog-buttonpane`:包含对话按钮的面板。只有当设置了 [`buttons`](#option-buttons) 选项时才呈现。 * `ui-dialog-buttonset`:按钮周围的容器。 此外,当设置了 [`modal`](#option-modal) 选项时,一个带有 `ui-widget-overlay` class 名称的元素被追加到 `&lt;body&gt;`。 ### 依赖 * [UI 核心(UI Core)](ref-ui-core.html) * [部件库(Widget Factory)](api-jQuery-widget.html) * [定位(Position)](api-position.html) * [按钮部件(Button Widget)](api-button.html) * [可拖拽小部件(Draggable Widget)](api-draggable.html) (可选的;当与 [`draggable`](#option-draggable) 选项一起使用时) * [可调整尺寸小部件(Resizable Widget)](api-resizable.html) (可选的;当与 [`resizable`](#option-resizable) 选项一起使用时) * [特效核心(Effects Core)](ref-effects-core.html)(可选的;当与 [`show`](#option-show) 和 [`hide`](#option-hide) 选项一起使用时) ### 附加说明 * 该部件要求一些功能性的 CSS,否则将无法工作。如果您创建了一个自定义的主题,请使用小部件指定的 CSS 文件作为起点。 ## 实例 一个简单的 jQuery UI 对话框(Dialog)。 ``` <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>对话框部件(Dialog Widget)演示</title> <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css"> <script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script> </head> <body> <button id="opener">打开对话框</button> <div id="dialog" title="对话框标题">我是一个对话框</div> <script> $( "#dialog" ).dialog({ autoOpen: false }); $( "#opener" ).click(function() { $( "#dialog" ).dialog( "open" ); }); </script> </body> </html> ```