jQuery 选项卡:如何隐藏单个选项卡?

问题描述 投票:0回答:5

如何隐藏tab2?我可以将 ID 添加到第二个 li,然后用 jQuery 隐藏它,但是没有办法直接通过 .tabs 来做到这一点吗?

<div id="tabs" style="width:100%">
<ul>
    <li>
        <a href="#tab1">
            Tab 1 Title
        </a>
    </li>
    <li>
        <a href="#tab2">
            Tab 2 Title
        </a>
    </li>
</ul>
<div id="tab1" style="width:100%;">
    content tab1
 ....
javascript jquery jquery-ui tabs
5个回答
20
投票

试试这个:

$('[href="#tab2"]').closest('li').hide();

8
投票

试试这个:

  $($("#tabs").find("li")[1]).hide()

3
投票

演示

HTML:

<div id='MyTabSelector'>
  <ul>
    <li><a href="#tabs-1">Tab 0</a></li>
    <li><a href="#tabs-2">Tab 1</a></li>
    <li><a href="#tabs-3">Tab 2</a></li>
  </ul>
  <div id="tabs-1">
      <a href="#" onclick="$('#MyTabSelector').disableTab(1);">Disable Tab 1</a><br />

JS:

(function ($) {
    $.fn.disableTab = function (tabIndex, hide) {
    // Get the array of disabled tabs, if any
    var disabledTabs = this.tabs("option", "disabled");

    if ($.isArray(disabledTabs)) {
        var pos = $.inArray(tabIndex, disabledTabs);

        if (pos < 0) {
            disabledTabs.push(tabIndex);
        }
    }
    else {
        disabledTabs = [tabIndex];
    }

    this.tabs("option", "disabled", disabledTabs);

    if (hide === true) {
        $(this).find('li:eq(' + tabIndex + ')').addClass('ui-state-hidden');
    }

    // Enable chaining
    return this;
};

$.fn.enableTab = function (tabIndex) {
            $(this).find('li:eq(' + tabIndex + ')').removeClass('ui-state-hidden');
    this.tabs("enable", tabIndex);
    return this;

};


})(jQuery);
$('#MyTabSelector').tabs();

1
投票

您需要隐藏 li 和 div 才能隐藏选项卡 所以你的jquery将是

$($("#tabs").find("li")[1]).hide();
$($("#tabs").find('#tab2')).hide();

1
投票

你可以试试这个:

//when you click a tab
$('#tabs a').click(function(){
    //show hidden tabs again
    $('#tabs li:hidden').show();
    //hide the clicked tab
    $(this).parent().hide();
});
© www.soinside.com 2019 - 2024. All rights reserved.