jQuery UI 选项卡 - 如果相应的内容面板为空,如何删除选项卡列表项?

标签 jquery jquery-ui tabs navigation tabbed

我正在使用 cms 系统的基本 jQuery UI 选项卡设置,我想知道如果具有相应 id 的内容面板为空,是否可以隐藏导航选项卡。

HTML

<div id="tabs">
    <ul>
        <li><a href="#tabs-1">Nunc tincidunt</a></li>
        <li><a href="#tabs-2">Proin dolor</a></li>
        <li><a href="#tabs-3">Aenean lacinia</a></li>
    </ul>
    <div id="tabs-1">
        <p>Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.</p>
    </div>
    <div id="tabs-2">
        <p>Morbi tincidunt, dui sit amet facilisis feugiat, odio metus gravida ante, ut pharetra massa metus id nunc. Duis scelerisque molestie turpis. Sed fringilla, massa eget luctus malesuada, metus eros molestie lectus, ut tempus eros massa ut dolor. Aenean aliquet fringilla sem. Suspendisse sed ligula in ligula suscipit aliquam. Praesent in eros vestibulum mi adipiscing adipiscing. Morbi facilisis. Curabitur ornare consequat nunc. Aenean vel metus. Ut posuere viverra nulla. Aliquam erat volutpat. Pellentesque convallis. Maecenas feugiat, tellus pellentesque pretium posuere, felis lorem euismod felis, eu ornare leo nisi vel felis. Mauris consectetur tortor et purus.</p>
    </div>
    <div id="tabs-3">

    </div>

JavaScript

$(function() {
    $( "#tabs" ).tabs();
});

感谢帮助:)

最佳答案

如果您想删除所有空选项卡,可以使用以下代码:

$(function() {
    var $tabs = $( "#tabs" );
    $tabs.tabs();
    var offst = 0;
    $('#tabs > div').each(function(index, elem) {
        if ($(elem).html().trim() === '') {
            $tabs.tabs( "remove" , index - offst);
            offst++;
        }
    });
});

Here's jsfiddle 上的示例

注释:

  • 使用 offst 变量的原因是,如果删除选项卡,索引将会更改。
  • 这会将 tabs 元素缓存在 $tabs 中,因此不必多次调用选择器。
  • 这使用了 jQuery UI 选项卡的正确remove 功能。

关于jQuery UI 选项卡 - 如果相应的内容面板为空,如何删除选项卡列表项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5383755/

相关文章:

javascript - jquery 在表之间移动行禁用 javascript

javascript - 我可以使用此代码显示两个不同的窗口吗?

jquery - 找出是否使用 JQuery 检查了单选按钮?

firefox - 枚举 IE8 和 Firefox 中的选项卡

javascript - 在表中添加时转换在切换类中不起作用

javascript - $http.post 在 AngularJS 中不起作用

javascript - 替代 li 元素的(不推荐使用的)value 属性

javascript - jQuery 自动完成 (1.8.5) - 未捕获的类型错误,属性 'source' 不是函数

android - 使用 Sherlock 更改操作栏选项卡中的字体样式

android - 根据 list 中是否设置了 Theme.NoTitleBar,选项卡显示不同