如何在jQuery中结合UI对话框和UI选项卡?

Ric*_*ral 4 jquery jquery-ui jquery-ui-dialog jquery-ui-tabs

所以我正在尝试将Dialog与Tabs UI组件结合起来形成jQuery UI我几乎就在那里但我似乎无法将对话框关闭按钮从Dialog UI标题栏移动到Tabs UI中.

我试图将现有的Dialog UI标题栏关闭按钮移动到Tabs UI栏,但是这会出现很多问题并且鼠标悬停时按钮会移动.我尝试在Tabs UI栏中创建带有关闭图标的按钮,但事实证明这很难将按钮放在最右侧,具有按钮的外观(上面有关闭图标).

问题是Tabs UI栏只接受<li>因为它是a <ul>.如果我想在那里添加其他内容,我需要将其包含在内<li>,这会导致很多问题,或者我没有看到简单的解决方案.

谁能帮我吗?

这是我目前的代码:

<script type="text/javascript">
    $(document).ready(function() {
        $('#dialog-movie-info').dialog({
            draggable: false,
            resizable: false,
            show: 'fade',
            hide: 'fade',
            modal: true,
            height: 370,
            width: 650,
            position: ['center', 35],
            open: function() {
                //$('.ui-dialog-titlebar-close').appendTo('#ui-tab-dialog-close');
                $(this).parent().children('.ui-dialog-titlebar').remove();
                $('#tabs-movie').tabs();
            },
            close: function() {
                $(this).find('#tab-info').children().remove();
                $(this).dialog('destroy');
            }
        });
    }
</script>
<div id="dialog-movie-info" class="ui-helper-hidden">
  <div id="tabs-movie">
    <ul>
      <li><a href="#tab-info"><img src="template/images/icon-block.png" alt="" />Information</a></li>
      <li><a href="#tab-cast"><img src="template/images/icon-block.png" alt="" />Cast List</a></li>
    </ul>
    <div id="tab-info">
      <em>Info tab...</em>
    </div>
    <div id="tab-cast">
      <em>Cast tab...</em>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

Ric*_*ral 7

我发现一个适合我的解决方案:

使用Javascript:

$(document).ready(function() {
    $('#tabs-movie').tabs();

    $('#dialog-movie-info').dialog({
        closeOnEscape: false,
        draggable: false,
        resizable: false,
        autoOpen: false,
        open: function() {
            $(this).find('.ui-dialog-titlebar-close').blur();
        }
    }).parent().find('.ui-dialog-titlebar-close').prependTo('#tabs-movie').closest('.ui-dialog').children('.ui-dialog-titlebar').remove();
});
Run Code Online (Sandbox Code Playgroud)

HTML:

<div id="dialog-movie-info">
  <div id="tabs-movie">
    <ul>
      <li><a href="#tab-info"><img src="template/images/icon-block.png" alt="" />Information</a></li>
      <li><a href="#tab-cast"><img src="template/images/icon-block.png" alt="" />Cast List</a></li>
    </ul>
    <div id="tab-info"></div>
    <div id="tab-cast">
      <em>Cast Tab!</em>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

#tabs-movie {
    border: none;
    padding: 0;
}
Run Code Online (Sandbox Code Playgroud)