有时,我们可能希望显示具有多个内容窗格的对话框。jQuery UI提供的选项卡可与对话框一起使用,以实现此目的。虽然在对话框的内容容器中包含选项卡可能更常见,但是此示例将演示如何使选项卡列表成为对话框的标题栏。
的HTML
<button id="openButton"> Open Dialog </button> <div id="dialog" style="display:none"> <div class="ui-tabs"> <ul> <li><a href="#tab_1">Tab 1</a></li> <li><a href="#tab_2">Tab 2</a></li> </ul> <div id="tab_1"> <p>Tab 1 content...</p> </div> <div id="tab_2"> <p>Tab 2 content...</p> </div> </div> </div>
jQuery的
$(document).ready(function() {
// 传递给jQuery UI对话框的选项
var options = {
position: {
my: "left top",
at: "left top",
of: window
},
autoOpen: false
};
/* Initialization */
// 初始化对话框
var dialog = $("#dialog").dialog(options);
// 初始化标签
var tabs = $(".ui-tabs").tabs();
/* Gather Elements Before Rearrangement */
var closeButton = dialog.siblings(".ui-dialog-titlebar").find(".ui-dialog-titlebar-close");
var initialTitlebar = dialog.siblings(".ui-dialog-titlebar");
// 查找选项卡列表以创建标题栏,添加ui-dialog-titlebar类,然后附加关闭按钮
var tabbedTitlebar = dialog.find(".ui-tabs ul:first").addClass("ui-dialog-titlebar").append(closeButton);
/* Arranging */
// 删除初始标题栏
$(initialTitlebar).remove();
// 为tabbedTitlebar创建一个新的.ui-tabs容器
var tabbedTitlebarContainer = $("<div>", {
class: "ui-tabs"
}).append(tabbedTitlebar);
// 将tabbedTitlebarContainer放在对话框容器之前
dialog.parents(".ui-dialog").prepend(tabbedTitlebarContainer);
/* Show the Dialog */
dialog.dialog("open");
var openButton = $("#openButton").button().click(function() {
dialog.dialog("open");
});
});供参考的工作示例:https://jsfiddle.net/5x4zz681/