jQuery UI选项卡 - 显示所有选项卡

Jas*_*son 4 javascript jquery jquery-ui jquery-ui-tabs

嘿大家.我看到另一篇关于使用特定jQuery UI选项卡的帖子,一次打开所有选项卡内容.这或多或少是"全部显示"标签.它似乎对我不起作用.无论如何,我的页面结构如下所示:

<div id="tabs">

   <ul class="tabs-1">
   <li><a href="#tabs-1"> Some Tab </li>
   <li><a href="#tabs-2"> Some Tab </li>
   <li><a href="#tabs-3"> Some Tab </li>
   <li><a href="#"> Show All </li>
   </ul>



<fieldset id="tabs-1"> Content </fieldset>
<fieldset id="tabs-2"> Content </fieldset>
<fieldset id="tabs-3"> Content </fieldset>

</div>
Run Code Online (Sandbox Code Playgroud)

这是我使用的JavaScript,基于前面的示例:

var user_tabs = $("#tabs").tabs({
    select: function(event, ui) {
        if (ui.index == 3) {
            $("fieldset[id^=tabs-]").show();
        } else {
            $("fieldset[id^=tabs-]").hide();
            $(ui.panel).show()
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

我使用的选项卡已正确初始化,但"show all tab"根本不起作用

有任何想法吗?

Nik*_*las 5

首先,修复选项卡中的html代码.您错过了</a>所有链接.

然后将您的上一个标签更改为:

<li><a href="#tabs-4"> Show All </a></li>
Run Code Online (Sandbox Code Playgroud)

添加另一个面板(可以为空):

<fieldset id="tabs-4"></fieldset>  
Run Code Online (Sandbox Code Playgroud)

并将您的JavaScript更改为:

var user_tabs = $("#tabs").tabs({
    show: function(event, ui) {

        if (ui.index == 3) {

            $("fieldset[id^='tabs-']").removeClass('ui-tabs-hide');
            $("fieldset[id='tabs-4']").addClass('ui-tabs-hide');
        } 
    }
});
Run Code Online (Sandbox Code Playgroud)

(注意从改变selectshow)

示例:http://jsfiddle.net/niklasvh/km7Le/